GORM简介
- GORM(Go Object-Relational Mapping)是一个适用于 Go 语言的开源 ORM 库,用于简化数据库操作。它提供了一组丰富的功能,帮助开发人员在 Go 代码中进行数据库访问、查询和操作,而无需编写繁琐的 SQL 语句。
- GORM的主要特性
- 模型定义:你可以通过定义 Go 结构体来映射数据库表,使得操作数据库记录更像操作 Go 对象一样。
- 自动迁移:GORM 支持自动创建、更新和迁移数据库表,根据模型结构的变化自动生成相应的表结构。
- CRUD 操作:GORM 提供了易于使用的方法来执行创建、读取、更新和删除(CRUD)操作。
- 查询构建器:通过链式调用方法,你可以构建复杂的查询,包括条件、排序、分页等。
- 预加载:GORM 支持预加载关联数据,减少了 N+1 查询问题的发生。
- 事务支持:GORM 支持数据库事务,可以确保操作的原子性和一致性。
- 钩子函数:你可以在模型上定义回调函数,以便在特定事件发生时执行自定义逻辑。
- 数据验证:GORM 支持在创建和更新操作前进行数据验证,以确保数据的有效性。
- 支持多种数据库:除了支持 SQLite,GORM 还支持 MySQL、PostgreSQL、SQL Server 等多种数据库。
GORM实战
-
引入包以及安装
// 安装 go get -u gorm.io/gorm go get -u gorm.io/driver/sqlite // 包引入 import ( "gorm.io/gorm" "gorm.io/driver/sqlite" ) -
数据结构定义以及连接数据库
// 定义一个Members结构体 type Members struct { gorm.Model StudentID int `gorm:"column:StudentID"` Scores int `gorm:"column:Scores"` } // 连接数据库 db, err := gorm.Open(sqlite.Open("Class666.db"), &gorm.Config{}) if err != nil { panic("Failed to connect database") } -
迁移数据库
// 根据模型定义自动生成数据库表 db.AutoMigrate(&Members{}) -
创建记录
// 创建一条记录 db.Create(&Members{StudentID: 565, Scores: 777}) // 批量插入数据 members := []Members{{StudentID: 566, Scores:752}, {StudentID: 754, Scores:568}} db.Create(members) -
查询记录
// 查询第一条记录 db.First(&member1, 1) // 查询指定记录 db.Where("StudentID = ?", 777).Find(&member2) -
更新记录
// 更新记录 db.Model(Members{}).Update("StudentID", "999") -
删除记录
// 删除记录 db.Delete(&member, 1)
上述是一些简单GORM操作数据库的操作,GORM提供丰富强大的功能,可以深入[GORM文档]: gorm.io/zh_CN/docs/ 继续学习
学习感悟
学习 GORM 是提升 Go 语言开发技能和数据库操作能力的一种方式。通过掌握 GORM,可以更高效、更安全地进行数据库操作,并在实际项目中应用这些知识。可以根据GORM文档学习,效率会更高,为后续开发工作打下基础。