Golang GORM 增删改查
创建结构体
type User struct {
Id int `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
UserName string `gorm:"column:user_name" json:"user_name"`
CreatedAt int `gorm:"column:created_at" json:"created_at"`
UpdatedAt int `gorm:"column:updated_at" json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at" json:"-"`
}
新增
user := User{}
user.UserName = "zhangsan"
if err := db.Create(&user).Error; err != nil {
fmt.Println("插入失败", err)
return
}
查询
// 定义接收查询结果的结构体变量
user := User{}
// 查询一条记录。
db.Take(&user)
// 等价于:SELECT * FROM `user` LIMIT 1
// 查询一条记录,根据主键ID排序(正序),返回第一条记录。
db.First(&user)
// 等价于:SELECT * FROM `user` ORDER BY `id` ASC LIMIT 1
// 查询一条记录, 根据主键ID排序(倒序),返回第一条记录。
// 语义上相当于返回最后一条记录
db.Last(&user)
// 等价于:SELECT * FROM `user` ORDER BY `foods`.`id` DESC LIMIT 1
//查询多条记录,Find函数返回的是一个数组。
// 因为Find返回的是数组,所以定义一个商品数组用来接收结果
var user []User
db.Find(&user)
// 等价于:SELECT * FROM `user`
// 查询一列值。
// 数组
var usernames []string
// 返回所有标题
// 等价于:SELECT user_name FROM `user`
// 这里Model函数是为了绑定一个模型实例,可以从里面提取表名。
db.Model(&User{}).Pluck("user_name", &usernames)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 30%!