GORM连接数据库并实现CRUD | 青训营

60 阅读2分钟

导语:GORM是一个强大而灵活的ORM库,它为开发人员提供丰富的功能来简化数据库操作。本文将主要介绍如何使用GORM(Go的ORM库)连接数据库,并通过GORM的API实现常见的增删改查操作。

1. 引入GORM库和数据库驱动

首先,我们需要在Go项目中引入GORM库和所需的数据库驱动,可以使用go get命令安装GORM和相应的数据库驱动。

go get -u github.com/go-gorm/gorm
go get -u github.com/go-sql-driver/mysql

2. 连接数据库

在代码中导入所需的包后,我们可以使用GORM来连接数据库。以MySQL为例,连接代码如下:

import (
    "gorm.io/gorm"
    "gorm.io/driver/mysql"
)

func main() {
    // 创建数据库连接
    dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic("Failed to connect to database")
    }
    defer db.Close()
}

请确保替换userpassworddbname为实际的数据库连接参数。

3. 定义模型结构体

在进行数据库操作之前,我们需要定义数据表的模型结构体。模型结构体通常代表数据库中的一张表。下面是一个示例:

type User struct {
    gorm.Model
    Name  string
    Email string
}

在这个示例中,我们定义了一个名为User的模型结构体,并添加了两个字段NameEmail

4. 创建数据表

在连接数据库之后,我们可以使用GORM的AutoMigrate方法创建数据表。代码如下:

db.AutoMigrate(&User{})

这将自动创建名为users的数据表,表的结构与我们定义的User模型结构体一致。

5. 插入数据

要插入一条新记录到数据表中,我们可以使用GORM的Create方法。代码如下:

user := User{Name: "Alice", Email: "alice@example.com"}
result := db.Create(&user)
if result.Error != nil {
    panic("Failed to insert data")
}

6. 查询数据

有多种方法可以查询数据。下面是一些基本的例子:

  • 查询所有记录:
var users []User
db.Find(&users)
  • 条件查询:
var user User
db.Where("name = ?", "Alice").First(&user)

更多的查询操作和条件语法,请参考GORM官方文档。

7. 更新数据

要更新数据,我们可以使用GORM的Model方法和Updates方法。例如,更新用户名称的代码如下:

db.Model(&user).Updates(User{Name: "Bob"})

8. 删除数据

要删除数据,我们可以使用GORM的Delete方法。例如,删除一条记录的代码如下:

db.Delete(&user)