一个神奇的,对开发人员友好的 Golang ORM 库
概览
- 全特性 ORM (几乎包含所有特性)
- 模型关联 (一对一, 一对多,一对多(反向), 多对多, 多态关联)
- 钩子 (Before/After Create/Save/Update/Delete/Find)
- 预加载
- 事务
- 复合主键
- SQL 构造器
- 自动迁移
- 日志
- 基于GORM回调编写可扩展插件
- 全特性测试覆盖
- 开发者友好
安装
go get -u github.com/jinzhu/gorm
快速开始
package main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) type Product struct { gorm.Model Code string Price uint } func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { panic("failed to connect database") } defer db.Close() //自动检查 Product 结构是否变化,变化则进行迁移 db.AutoMigrate(&Product{}) // 增 db.Create(&Product{Code: "L1212", Price: 1000}) // 查 var product Product db.First(&product, 1) // 找到id为1的产品 db.First(&product, "code = ?", "L1212") // 找出 code 为 l1212 的产品 // 改 - 更新产品的价格为 2000 db.Model(&product).Update("Price", 2000) // 删 - 删除产品 db.Delete(&product) }
© 著作权归作者所有
举报
发表评论
0/200