官方文档 已经很详细的对gorm的使用方法进行介绍了。
连接数据库
1 | args := "root:root1234@(localhost:3306)/gamedb?charset=utf8mb4&parseTime=True&loc=Local" |
操作数据库
查询表是否存在
db.HasTable(&user)
db.HasTable(&User{})
db.HasTable("users")
创建表
db.CreateTable(&user)
删除表
db.DropTable(&User{})
db.DropTable("user")
db.DropTableIfExist(&User{},"prodcuts")
//删除两张表
修改表
- 修改列
db.Model(&User).ModifyColumn("description","text")
//修改description列为text - 删除列
db.Model(&User{}).DropColumn("description")
操作表数据
创建数据
db.Create(&user)
查询数据
1 | db.First(&user) // SELECT * FROM users ORDER BY id LIMIT 1; |
Where函数里面使用?作为拼接。
1 | Where("name <> ?", "jinzhu") |
Struct和map作为查询条件
1 | // Struct |
修改数据
删除数据
坑位
unsupported Scan, storing driver.Value type []uint8 into type *time.Time
解决办法:数据库连接使用parseTime=true
便可以解决