Appearance
增删改查
一些curd案例
链接数据库
go
// 配置格式 username:password@tcp(ip:port)/database?charset=utf8mb4&parseTime=true&loc=Local
db, err := gorm.Open(mysql.Open("root:123456@tcp(127.0.0.1:3306)/base_api?charset=utf8mb4&parseTime=true&loc=Local"))
if err != nil {
spanic(err)
}
表操作
- 结构头与表名映射关系
- 结构体必须大驼峰命名,并根据命名解析成表名
- 示例:ShopProduct 会命名为 shop_products
go
//先定义一个结构体(表)
type Test struct {
Id int64
Name string
CreatedAt string
}
//表相关操作db.Migrator() @see https://gorm.io/zh_CN/docs/migration.html
//创建tests表,表名默认为结构体名称小写+s
db.Migrator().AutoMigrate(&model.Test{})
// .Table() 自定义表名
db.Table("test").Migrator().CreateTable(&model.Test{})
//删除表
db.Migrator().DropTable(&model.Test{})
//判断表是否存在
db.Migrator().HasTable(&model.Test{})
数据操作
go
//新增数据
db.Create(&model.Test{Name: "zhangsan", CreatedAt: time.Now().String()})
//查询数据
var test model.Test
db.First(&test, "name = ? ", "zhansan")
fmt.Printf("%+v", test)
//更新数据
db.Model(&test).Update("name", "zhangsan")
//删除数据
db.Delete(&test)