使用 GORM(Go 的 ORM 库)连接数据库 | 青训营

75 阅读2分钟

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
}