Golang 连接数据库 Gorm 使用笔记
作者:互联网
中文文档地址:https://jasperxu.github.io/gorm-zh/
1. 基本操作
1)连接数据库:db, err := gorm.Open(...)
2) 读取数据:
读取数据需要定义struct,通过映射变量名与列名为对象赋值,列明是字段名的蛇形小写+_,也可以重设列名。
For example(来自手册):
type User struct { ID uint // 列名为 `id` Name string // 列名为 `name` Birthday time.Time // 列名为 `birthday` CreatedAt time.Time // 列名为 `created_at` } // 重设列名 type Animal struct { AnimalId int64 `gorm:"column:beast_id"` // 设置列名为`beast_id` Birthday time.Time `gorm:"column:day_of_the_beast"` // 设置列名为`day_of_the_beast` Age int64 `gorm:"column:age_of_the_beast"` // 设置列名为`age_of_the_beast` }
查询用api:
// 获取第一条记录,按主键排序 db.First(&user) //// SELECT * FROM users ORDER BY id LIMIT 1; // 获取最后一条记录,按主键排序 db.Last(&user) //// SELECT * FROM users ORDER BY id DESC LIMIT 1; // 获取所有记录 db.Find(&users) //// SELECT * FROM users; // 使用主键获取记录 / 这个可以直接用where做。。 db.First(&user, 10) //// SELECT * FROM users WHERE id = 10;
也可以选择用Scan将结果扫描到结构体中(命名还是要匹配)
type Result struct { Name string Age int } var result Result db.Table("users").Select("name, age").Where("name = ?", 3).Scan(&result)
3)Update
只要执行就update,更新user
db.Save(&user)
也有update方法,如果有筛选条件(where),夹在update前。
db.Model(&user).Update("name", "hello")
还有其他update方法可以check文档
批量操作用updates
标签:beast,users,数据库,db,id,Golang,user,Gorm,列名 来源: https://www.cnblogs.com/GW977/p/11079218.html