使用GORM实现数据库增删改查
使用GORM实现数据库增删改查的文字步骤如下:
- 导入GORM包以及数据库驱动包
首先需要导入"gorm.io/gorm"和相应数据库的驱动,例如MySQL的“gorm.io/driver/mysql"。这为我们提供了操作数据库的工具。
- 建立数据库连接
使用适当的数据库连接字符串(含数据库信息、账号密码等)调用gorm.Open方法建立到指定数据库的连接。
- 定义模型
根据数据库表结构定义对应的Go struct模型,gorm.Model提供了ID、CreatedAt、UpdatedAt、DeletedAt通用字段。
- 迁移schema
根据模型定义使用AutoMigrate命令,会在数据库中创建对应的表。
- CRUD操作
- Create:使用db.Create()方法创建新记录
- Read:使用db.First()、db.Find()等方法查询记录
- Update:使用db.Model().Update()等方法更新记录
- Delete:使用db.Delete()方法删除记录
GORM使我们通过调用简单的方法就能完成数据库增删改查,无需手写SQL语句。它可以大大简化数据库操作,提高开发效率。
一、准备工作
要使用GORM,需要先安装GORM和数据库驱动,这里我使用MySQL作为示例数据库:
go
Copy code
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
然后建立数据库连接:
go
Copy code
dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
二、定义模型
定义对应数据库表结构的模型:
go
Copy code
type User struct {
gorm.Model
Name string
Age int
}
gorm.Model内置ID、CreatedAt、UpdatedAt、DeletedAt字段。
运行迁移命令,在数据库中创建user表:
Copy code
db.AutoMigrate(&User{})
三、增删改查
1. 创建记录
go
Copy code
user := User{Name: "小王子", Age: 18}
db.Create(&user)
2. 查询记录
go
Copy code
// 获取第一条记录
var user User
db.First(&user)
// 获取所有记录
var users []User
db.Find(&users)
// 条件查询
db.Where("age = ?", 18).First(&user)
// 按主键查询
db.First(&user, 10)
3. 更新记录
go
Copy code
// 更新单个字段
db.Model(&user).Update("Age", 20)
// 更新多个字段
db.Model(&user).Updates(User{Name: "小王子", Age: 20})
// 按条件更新
db.Where("age = ?", 18).Update("age", 20)
4. 删除记录
go
Copy code
// 删除符合条件的记录
db.Where("age = ?", 20).Delete(&User{})
// 按主键删除记录
db.Delete(&user, 10)
四、总结
以上就是使用GORM实现数据库增删改查的基本用法。GORM还提供了多种高级功能,如关联、预加载、事务等,可以简化数据库操作。通过定义模型和简单的CRUD接口就可以完成对数据库的访问,使代码看起来更简洁。
相比自建SQL语句,GORM提高了开发效率,且可以避免SQL注入等安全问题。它是一个成熟优秀的ORM库,值得在Go项目中使用。