简介
GORM ,一个使用Go语言编写的神奇ORM库框架,是jinzhu/gorm的升级。文档齐全,对开发者友好,支持主流数据库。
最近GORM更新的最新版,添加了批量操作的功能,所以再次推荐给大家。
特性
- 全功能 ORM
- 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
- Create,Save,Update,Delete,Find 中钩子方法
- 支持
Preload
、Joins
的预加载 - 事务,嵌套事务,Save Point,Rollback To Saved Point
- Context,预编译模式,DryRun 模式
- 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
- SQL 构建器,Upsert,数据库锁,Optimizer/Index/Comment Hint,命名参数,子查询
- 复合主键,索引,约束
- Auto Migration
- 自定义 Logger
- 灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…
- 每个特性都经过了测试的重重考验
- 开发者友好
【本文重点】批量插入
将切片数据传递给 Create
方法,GORM 将生成一个单一的 SQL 语句来插入所有数据,并回填主键的值,钩子方法也会被调用。
import (
"gorm.io/gorm"
"gorm.io/driver/sqlite"
)
var users = []User{{Name: "jinzhu1"}, {Name: "jinzhu2"}, {Name: "jinzhu3"}}
DB.Create(&users)
for _, user := range users {
user.ID // 1,2,3
}
Upsert 和 Create With Associations 也支持批量插入
中文文档地址
在线阅读地址:【GORM 指南】
交流讨论(频道、组群、论坛)
了解【联系我们(Contact-US)https://www.cxthhhhh.com/contact-us】页面获得更多信息
写在最后
享受当下的美好!
如果本文对您有帮助,请通过以下【赞赏】按钮捐赠,这将帮助我们更好的创作和发展。