使用 GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作 | 青训营

100 阅读3分钟

前言

GORM是Go语言中热门的数据库ORM操作库,它提供了一种便捷的方式来进行数据库操作,而无需直接编写SQL代码。GORM的主要功能是将Go语言中的结构体类型与数据库表记录进行映射,以实现对象关系映射(ORM)。 GORM目前支持多种数据库,包括MySQL、SQL Server、PostgreSQL和SQLite等。在本次实践中,我们将以MySQL数据库为例,介绍如何使用GORM库实现增删改查操作。

一:安装GORM库

首先,我们需要在Go环境中安装GORM库:

go get -u gorm.io/gorm

二:导入必要的包

在Go代码中,使用以下语句导入GORM库以及相关的包:

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

三:建立数据库连接

可以使用以下代码建立数据库连接:

dsn := "{username}:{password}@tcp({host}:{port})/{dbname}?charset=utf8&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
    // 处理连接错误
}

其中,username是MySQL用户名,password是用户对应的密码,host是主机号,port为端口号,dbname为要连接的数据库名称。

四:定义模型结构体

在GORM中,需要定义与数据库表对应的模型结构体。每个字段都应该与数据库表中的列相对应。例如,假设有一个名为Users的表,可以定义以下模型结构体:

type User struct {
    Id   int
    Name string 
    Age  int
    Email string 'gorm:"column:user_email"`
}

如果struct里的字段和MySQL表里的字段不一致的话,需要在结构体里加上对应关系,如上email。 由于刚刚创建的结构体User和MySQL的表名users并不一致,因此还要创建一个对应关系:

func (u User) TableName() string {
    return "Users"
}

五:实现增删改查

使用GORM可以方便地执行数据库的增删改查操作。以下是一些示例代码:

创建记录

首先创建一个User结构体,设置相应字段,然后使用db.Create()将其插入数据库:

user := User{
    Name:  "Qiao",
    Age:   21,
    Email: “123456@qq.com”
}
result := db.Create(&user)
if result.Error != nil {
    // 处理创建错误
}

删除记录

以下代码会删除特定的用户记录:

result := db.Delete(&user)
if result.Error != nil {
    // 处理删除错误
}

修改记录

使用Update()来修改指定的字段:

result := db.Model(&user).Update("Age", 18)
if result.Error != nil {
    // 处理修改错误
}

查询记录

如果只查询一条记录可以使用First()函数:

var user User
result := db.Where("Name = ?", "Qiao").First(&user)
if result.Error != nil {
    // 处理查询错误
}

查询多条记录使用Find()函数,这里要定义一个users切片用来存储查询到的用户记录:

var users []User
result := db.Find(&users, “Age = ?”, 18)
if result.Error != nil {
    // 处理查询错误
}

结语

使用GORM作为Go语言的ORM库,可以方便地连接数据库并实现增删改查操作。通过简单的几个步骤,我们可以建立数据库连接、定义模型结构体,并使用GORM的API进行数据操作,使得数据库操作更加便捷和高效。