Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 64.2MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
// 定义一个用户,并初始化数据 u := User{ Username:"aizws", Password:"123456", CreateTime:time.Now().Unix(), } // 插入一条用户数据 // 下面代码会自动生成 SQL 语句:INSERT INTO `users` (`username`,`password`,`createtime`) VALUES ('aizws','123456','1540824823') db.Create(&u) // 一般项目中我们会类似下面的写法,通过 Error 对象检测,插入数据有没有成功,如果没有错误那就是数据写入成功了。 if err := db.Create(&u).Error; err != nil { fmt.Println("插入失败", err) return }
Gorm 2.0 版本以后,默认会自动返回主键 ID 值。
// 定义一个用户,并初始化数据 u := User{...忽略初始化代码...} // 插入记录 db.Create(&u) u.ID // 返回主键 ID,默认主键名为 ID,也可以通过 gorm 标签定义,请参考前面的模型定义章节 u.Error // 返回 error u.RowsAffected // 返回插入记录的条数
提示:如果 Gorm 设置了数据库连接池,那么每次执行数据库查询的时候都会从数据库连接池申请一个数据库连接,那么上述代码必须使用数据库事务,确保插入数据和查询自增 ID 两条 Sql 语句是在同一个数据库连接下执行,否则在高并发场景下,可能会查询不到自增 ID,或者查询到错误的 ID。
Gorm 提供了一组函数,用于快速拼接生成 Sql 语句,尽量减少编写 Sql 语句的工作量。同时,Gorm 将查询结果保存到结构体(struct)变量中,方便使用。Gorm 框架库是协程安全的,它提供的函数可以在多个协程中,安全地并发执行。Gorm 查询主要由query,where,order,limit,count,group 等多个函数组成,这些函数可以串起来组合 Sql 语句,使用起来类似编写 Sql 语句的习惯。