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

  

猜你喜欢

转载自www.cnblogs.com/GW977/p/11079218.html