赞
踩
- package main
-
- import (
- "github.com/jinzhu/gorm"
- _ "github.com/go-sql-driver/mysql"
- "time"
- )
-
- type User struct {
- User_id int `gorm:"primary_key"` //指定主键并自增
- Name string
- Pwd string
- CreatedAt time.Time
- UpdatedAt time.Time
- }
-
- func main() {
- //创建连接
- db, err := gorm.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm?charset=utf8&parseTime=True&loc=Local")
- if err != nil {
- panic("连接数据库失败")
- }
- defer db.Close()
- // 自动迁移模式
- //db.AutoMigrate(&User{})
- user := User{}
-
- //添加
- db.Create(&User{Name: "qwwqw", Pwd: "qwqwqwqwqw"})
-
- //查询
- db.First(&user, 1).Scan(&user)
-
- //修改
- user.Name = "jinzhu 2"
- db.Save(&user)
-
- //删除
- db.Where("user_id = ?",2).Delete(User{})
-
- }
- package main
-
- import (
- "github.com/jinzhu/gorm"
- _ "github.com/go-sql-driver/mysql"
- "time"
- "fmt"
- )
-
- type User struct {
- User_id int `gorm:"primary_key"` //指定主键并自增
- Name string
- Pwd string
- CreatedAt time.Time
- UpdatedAt time.Time
- Car []Car `gorm:"ForeignKey:User_id;AssociationForeignKey:User_id"` //(一对多)指定外键和关联外键
- }
-
- type Car struct {
- Car_id int32 `gorm:"primary_key"`
- User_id int
- Car_name string
- Car_gongli string
- }
-
- func main() {
- //创建连接
- db, err := gorm.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm?charset=utf8&parseTime=True&loc=Local")
- if err != nil {
- panic("连接数据库失败")
- }
- defer db.Close()
- // 自动迁移模式
- db.AutoMigrate(&User{}, &Car{})
-
- /**
- * 查询单条数据
- * &是为了获取结构体的内存地址,这样指针传递速度较快
- */
- user := User{}
- db.First(&user, 10)
- SELECT * FROM users WHERE user_id = 10 LIMIT 1;
-
- db.Where("user_id = ?", 9).First(&user)
- SELECT * FROM users WHERE user_id = 9 LIMIT 1;;
- fmt.Println(&user)
-
- /**
- * 查询多条数据
- *
- */
- users := []User{}
- db.Find(&users)
- SELECT * FROM users
-
- db.Where("user_id = ? and name = ?", 10, "jinzhu").Find(&users)
- SELECT * FROM users WHERE name = "jinzhu" AND user_id = 20;
-
- 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)
- SELECT * FROM users WHERE created_at = '2018-09-22 08:50:09' OR updated_at < '2018-09-22 08:50:09';
- fmt.Println(users)
-
- /**
- * 关联查询
- * 一对多 多对一 多对多
- */
- db.Where("user_id = ?", 10).Preload("Car").Find(&user)
-
- db.Where("user_id = ?", 10).Preload("Car","car_name like ?","%田%").Find(&user)
-
- fmt.Println(&user)
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。