当前位置:   article > 正文

golang中gorm包的操作_golang gorm createdat

golang gorm createdat

1.简单的连接和CURD

  1. package main
  2. import (
  3. "github.com/jinzhu/gorm"
  4. _ "github.com/go-sql-driver/mysql"
  5. "time"
  6. )
  7. type User struct {
  8. User_id int `gorm:"primary_key"` //指定主键并自增
  9. Name string
  10. Pwd string
  11. CreatedAt time.Time
  12. UpdatedAt time.Time
  13. }
  14. func main() {
  15. //创建连接
  16. db, err := gorm.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm?charset=utf8&parseTime=True&loc=Local")
  17. if err != nil {
  18. panic("连接数据库失败")
  19. }
  20. defer db.Close()
  21. // 自动迁移模式
  22. //db.AutoMigrate(&User{})
  23. user := User{}
  24. //添加
  25. db.Create(&User{Name: "qwwqw", Pwd: "qwqwqwqwqw"})
  26. //查询
  27. db.First(&user, 1).Scan(&user)
  28. //修改
  29. user.Name = "jinzhu 2"
  30. db.Save(&user)
  31. //删除
  32. db.Where("user_id = ?",2).Delete(User{})
  33. }

2.深入查询操作

  1. package main
  2. import (
  3. "github.com/jinzhu/gorm"
  4. _ "github.com/go-sql-driver/mysql"
  5. "time"
  6. "fmt"
  7. )
  8. type User struct {
  9. User_id int `gorm:"primary_key"` //指定主键并自增
  10. Name string
  11. Pwd string
  12. CreatedAt time.Time
  13. UpdatedAt time.Time
  14. Car []Car `gorm:"ForeignKey:User_id;AssociationForeignKey:User_id"` //(一对多)指定外键和关联外键
  15. }
  16. type Car struct {
  17. Car_id int32 `gorm:"primary_key"`
  18. User_id int
  19. Car_name string
  20. Car_gongli string
  21. }
  22. func main() {
  23. //创建连接
  24. db, err := gorm.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm?charset=utf8&parseTime=True&loc=Local")
  25. if err != nil {
  26. panic("连接数据库失败")
  27. }
  28. defer db.Close()
  29. // 自动迁移模式
  30. db.AutoMigrate(&User{}, &Car{})
  31. /**
  32. * 查询单条数据
  33. * &是为了获取结构体的内存地址,这样指针传递速度较快
  34. */
  35. user := User{}
  36. db.First(&user, 10)
  37. SELECT * FROM users WHERE user_id = 10 LIMIT 1;
  38. db.Where("user_id = ?", 9).First(&user)
  39. SELECT * FROM users WHERE user_id = 9 LIMIT 1;;
  40. fmt.Println(&user)
  41. /**
  42. * 查询多条数据
  43. *
  44. */
  45. users := []User{}
  46. db.Find(&users)
  47. SELECT * FROM users
  48. db.Where("user_id = ? and name = ?", 10, "jinzhu").Find(&users)
  49. SELECT * FROM users WHERE name = "jinzhu" AND user_id = 20;
  50. db.Where("created_at > ?", "2018-09-22 08:50:09").Or("updated_at < ?", "2018-09-22 08:50:09").Order("created_at asc").Find(&users)
  51. SELECT * FROM users WHERE created_at = '2018-09-22 08:50:09' OR updated_at < '2018-09-22 08:50:09';
  52. fmt.Println(users)
  53. /**
  54. * 关联查询
  55. * 一对多 多对一 多对多
  56. */
  57. db.Where("user_id = ?", 10).Preload("Car").Find(&user)
  58. db.Where("user_id = ?", 10).Preload("Car","car_name like ?","%田%").Find(&user)
  59. fmt.Println(&user)
  60. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/1021965
推荐阅读
相关标签
  

闽ICP备14008679号