简介
GORM 是 Go 语言中一个强大且易用的 ORM(Object Relational Mapping)库,它能够帮助我们简化与数据库的交互,提高开发效率。在本文中,我们将学习如何使用 GORM 连接数据库,并实现基本的增删改查操作。高级操作可以参考GORM官方文档GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
安装和配置
首先,我们需要安装 GORM 包及其所需的数据库驱动。在命令行中执行以下命令:
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql # 假设我们使用 MySQL 数据库
接下来,我们需要在 Go 代码中引入 GORM 包:
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
连接数据库
在开始之前,确保你已经在本地或远程服务器上安装并启动了 MySQL 数据库,并创建了相应的数据库。
接下来,我们将通过 GORM 连接到数据库。在代码中添加以下部分:
func ConnectDB() (*gorm.DB, error) {
// 替换以下信息为你的 MySQL 连接信息
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 {
return nil, err
}
return db, nil
}
创建模型
在 GORM 中,模型是与数据库表对应的结构体。我们需要定义模型来表示数据库中的表及其字段。
假设我们创建了一个用户表 users,包含 id、name 和 age 字段,我们可以定义如下模型:
type User struct {
ID uint `gorm:"primaryKey"`
Name string `gorm:"not null"`
Age uint
}
在这个例子中,ID 字段被指定为主键,并且 Name 字段不能为空。
数据库迁移
在实际应用中,我们需要将模型映射到数据库表,这一过程称为数据库迁移(Migration)。GORM 提供了自动迁移的功能,可以根据模型自动创建表和字段。
在连接数据库的代码中添加以下部分:
func Migrate(db *gorm.DB) error {
return db.AutoMigrate(&User{})
}
增删改查操作
现在我们已经连接到了数据库并创建了模型,我们可以开始进行增删改查操作。
创建用户
func CreateUser(db *gorm.DB, name string, age uint) error {
user := User{
Name: name,
Age: age,
}
return db.Create(&user).Error
}
查询用户
func GetUserByID(db *gorm.DB, id uint) (User, error) {
var user User
result := db.First(&user, id)
if result.Error != nil {
return User{}, result.Error
}
return user, nil
}
更新用户
func UpdateUser(db *gorm.DB, id uint, name string, age uint) error {
var user User
result := db.First(&user, id)
if result.Error != nil {
return result.Error
}
user.Name = name
user.Age = age
return db.Save(&user).Error
}
删除用户
func DeleteUser(db *gorm.DB, id uint) error {
var user User
result := db.First(&user, id)
if result.Error != nil {
return result.Error
}
return db.Delete(&user).Error
}