GORM 是一个流行的 Go 语言 ORM 库,它提供了一种简洁、灵活的方式来连接和操作各种数据库。下面我们将通过示例展示如何使用 GORM 连接数据库,并实现增删改查操作。
1. 安装 GORM
首先,确保已经安装了 Go 编程环境,并设置好了正确的 GOPATH。然后,通过以下命令安装 GORM:
go get -u gorm.io/gorm
2. 创建数据库表
为了演示,我们将创建一个简单的用户表,包含用户 ID、姓名和电子邮件。这里以 MySQL 数据库为例:
CREATE TABLE `users` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
);
3. 定义数据模型
在 Go 代码中,我们需要创建一个结构体来表示数据库表。结构体的字段应与表中的列对应。这里我们将创建一个 User 结构体:
package main
import "gorm.io/gorm"
type User struct {
ID uint `gorm:"primarykey"`
Name string `gorm:"not null"`
Email string `gorm:"not null"`
}
4. 连接数据库
接下来,我们需要配置 GORM 来连接数据库。以下示例展示了如何连接 MySQL 数据库:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
dsn := "user:password@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 自动迁移表结构(如果表不存在)
db.AutoMigrate(&User{})
}
请根据实际情况修改连接字符串 dsn 中的用户名、密码、数据库名称和主机端口。在上述示例中,我们使用了 MySQL 驱动程序,并指定了一些连接参数。
5. 实现增删改查操作
现在我们已经成功连接了数据库,接下来实现一些常见的增删改查操作。
5.1 创建记录
使用 Create 方法可以创建新的记录:
func createUser(db *gorm.DB, user User) (User, error) {
db.Create(&user)
return user, db.Error
}
5.2 查询记录
使用 Find 方法可以查询记录:
func findUsers(db *gorm.DB) ([]User, error) {
var users []User
db.Find(&users)
return users, db.Error
}
5.3 更新记录
使用 Updates 方法可以更新记录:
func updateUser(db *gorm.DB, user User) error {
err := db.Model(&user).Updates(User{Name: "new name", Email: "newemail@example.com"})
return err
}
5.4 删除记录
使用 Delete 方法可以删除记录:
func deleteUser(db *gorm.DB, user User) error {
err := db.Delete(&user)
return err
}