随笔分类 - gorm
golang中的orm框架
摘要:gorm默认支持软删除 如果想要支持联合唯一索引,就需要用到一个gorm的插件库:gorm.io/plugin/soft_delete By default, gorm.Model uses *time.Time as the value for the DeletedAt field, and i
阅读全文
摘要:用户表(前台、后台) type User struct { ID int `gorm:"primaryKey;autoIncrement"` Name sql.NullString `gorm:"default:'隔壁老王'"` Age uint8 `gorm:"default:55"` UUID
阅读全文
摘要:作用域允许您重用常用逻辑,共享逻辑需要定义为类型 func(*gorm.DB) *gorm.DB 查询 func Scope1(db *gorm.DB) *gorm.DB { return db.Where("name = ?", "哈哈哈") } func Scope2(slice1 []int)
阅读全文
摘要:包含mysql配置、gorm配置、连接池配置、log日志配置 init_db_log.go文件代码 package main import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "time" ) con
阅读全文
摘要:删除 删除一条记录 删除一条记录时,删除对象需要指定主键,否则会触发 批量 Delete,例如: db.Debug().Where("id = ?", 6).Delete(new(User)) // DELETE FROM `users` WHERE id = 6 db.Debug().Delete
阅读全文
摘要:保存所有字段 Save 会保存所有的字段,即使字段是零值、 db.First(&user, 5)user.Name = sql.NullString{"王八", true}user.Age = 9db.Debug().Save(&user)// UPDATE `users` SET `name`='
阅读全文
摘要:智能选择字段 GORM 允许通过 Select 方法选择特定的字段,如果您在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用 API 时自动选择特定的字段,例如: type User struct { ID int `gorm:"primaryKey;autoIncrement"`
阅读全文
摘要:检索单个对象 GORM 提供了 First、Take、Last 方法,以便从数据库中检索单个对象。当查询数据库时它添加了 LIMIT 1 条件 // 获取第一条记录(主键升序) db.First(&user) // SELECT * FROM `users` ORDER BY `users`.`id
阅读全文
摘要:1. 简单创建记录 user := User{Name: "李四", Age: 88, Birthday: time.Now()} ret := db.Create(&user) // 通过数据的指针来创建 fmt.Println(user.ID) // 返回插入数据的主键 fmt.Println(
阅读全文
摘要:1. mysql的初始化配置 dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?%s", user, passwd, host, port, db, other) //db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
阅读全文
摘要:模型定义 模型是标准的结构体,由go的基本数据类型、实现了Scanner和Valuer接口的自定义类型及其指针或别名组成 例如: type User struct { ID uint Name string Email *string Age uint8 Birthday *time.Time Me
阅读全文
摘要:特性 全功能 ORM 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承) Create,Save,Update,Delete,Find 中钩子方法 支持 Preload、Joins 的预加载 事务,嵌套事务,Save Point,Rollbac
阅读全文
摘要:package main import ( "database/sql" "gorm.io/driver/mysql" "gorm.io/gorm" ) // 1. 定义模型 type User struct { ID int64 // ID默认被当做主键 //Name *string `gorm:
阅读全文
摘要:1. gorm操作mysql: 1.1 安装gorm gorm官网: https://gorm.io/zh_CN/docs/connecting_to_the_database.html gorm的github地址:https://github.com/go-gorm/gorm go get -u
阅读全文