实践:GORM是什么?及使用 GORM连接数据库,并实现增删改查操作 | 青训营

63 阅读3分钟

在青训营的课上我们学习到了GROM连接数据库,那么我们首先要搞懂什么是GROM?上网百度查询过后得到了,

GORM的定义: GORM是一个基于Go语言的对象关系映射(Object Relational Mapping,ORM)库。ORM是一种编程技术,用于在对象模型和关系数据库之间建立映射关系。它可以使开发人员在操作数据库时更加方便和高效,避免了直接编写原始SQL语句的繁琐工作。

GORM提供了许多功能和工具,简化了在Go语言中进行数据库操作的过程。它支持多种数据库(如MySQL、PostgreSQL、SQLite等),具有丰富的查询构造器、预加载、事务管理、模型关联、自动迁移和钩子等功能,可以大大简化数据库的访问和操作。

通过使用GORM,开发人员可以使用面向对象的方式进行数据库操作,无需手动编写SQL语句。它提供了简洁的API,使得编写和维护数据库代码变得更加容易。同时,GORM还具有良好的性能和可扩展性,适用于各种规模的项目。

了解了GORM之后,那么如何操作进行连接呢?

连接步骤如下:

在开始之前,确保已安装了Go语言和相关的数据库驱动程序(例如MySQL、PostgreSQL等)。还需要安装 GORM 包。可以通过运行以下命令来进行安装:

go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql // 替换为所使用的数据库驱动程序

首先,导入所需的包:

goCopy Code
import (
    "fmt"
    "log"

    "gorm.io/driver/mysql" // 替换为所使用的数据库驱动程序
    "gorm.io/gorm"
)

接下来,定义一个结构体来映射数据库表:

goCopy Code
type User struct {
    ID   uint
    Name string
    Age  int
}

然后,我们需要连接到数据库。首先,需要构建一个 DSN(数据源名称)字符串,该字符串包含数据库的连接信息:

goCopy Code
dsn := "user:password@tcp(localhost:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local" 

请替换 userpasswordlocalhost:3306database_name 为实际的数据库凭据和连接信息。

连接数据库并创建一个 GORM 实例:

goCopy Code
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
    log.Fatal(err)
}

在此示例中,我们使用 MySQL 数据库,并将其连接到 GORM。

接下来,我们需要定义数据库中表的结构并进行自动迁移。可以使用 AutoMigrate() 方法创建或更新表结构:

goCopy Code
err = db.AutoMigrate(&User{})
if err != nil {
    log.Fatal(err)
}

现在,我们可以进行增删改查操作了。以下是示例代码:

goCopy Code
// 创建用户
user := User{Name: "John", Age: 30}
result := db.Create(&user)
if result.Error != nil {
    log.Fatal(result.Error)
}
fmt.Println("创建用户成功")

// 查询用户
var retrievedUser User
result = db.First(&retrievedUser, user.ID)
if result.Error != nil {
    log.Fatal(result.Error)
}
fmt.Printf("查询到的用户:%v\n", retrievedUser)

// 更新用户
db.Model(&retrievedUser).Update("Age", 35)
fmt.Println("更新用户成功")

// 删除用户
db.Delete(&retrievedUser)
fmt.Println("删除用户成功")

在这个示例中,我们首先创建了一个新用户,然后通过调用 Create() 方法将其插入数据库。接下来,我们使用 First() 方法查询该用户,并使用 Update() 方法更新用户的年龄。最后,我们使用 Delete() 方法删除该用户。