使用GORM连接数据库和实现CRUD操作| 青训营

91 阅读3分钟

使用GORM连接数据库和实现CRUD操作

引言

在现代应用程序开发中,与数据库的交互是一个基本且常见的任务。Go语言的GORM库(Go ORM,Object-RelationalMapping)是一个流行的工具,用于简化与数据库的交互,允许我们使用Go语言结构来表示数据库表和记录。这篇笔记将介绍如何使用GORM连接到数据库 ,并执行常见的增、删、改、查(CRUD)操作。

第一步:安装GORM

首先,确保已经安装Go编程语言。然后,我们需要安装GORM和相应的数据库驱动程序。假设我们使用Mysql数据库,可以使用以命令安装GORM和Mysql驱动程序:

go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql

第二步:连接到数据库

在Go项目中,首先需要创建一个连接到数据库的实例。这里以连接到Mysql数据库为例:

package main

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

func main(){
  //连接到 Mysql数据库
  dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
  if err != nil{
    log.Fatalf("无法连接到数据库:%v",err)
  }
  defer db.Close()
  
  //连接成功,可以继续在这里执行数据库操作
}

上述代码中,只需要将以下部分替换成实际的Mysql连接信息即可:

  • user:MySQL 用户名。
  • password:MySQL 密码。
  • 127.0.0.1:3306:MySQL 服务器地址和端口。
  • database_name:要连接的数据库名称。

一旦成功连接到 MySQL 数据库,就可以使用 GORM 执行各种数据库操作,如创建表、插入数据、查询数据等。

第三步:定义模型

在GORM中,模型是Go语言结构,用于表示数据库中的表。每个字段对应表中的一个列。

type User struct{
  ID uint // 自动创建的主键
  Username string //用户名
  Password string //密码
  Email string //电子邮件
}

在实践中,为了节省开发时间可以选择先在Goland中用Go代码定义模型,这样就可以省去再使用sql语句创建表。反之如果已经写好了sql语句,也可以选择反向工程生成Go的结构体。这样可以节省大量的时间。

第四步:创建表

在连接到数据库并定义模型后,我们需要使用GORM创建数据库表。这可以通过一下方式实现:

func main(){
  // ...连接到数据库的代码...
  
  //创建表
  db.AutoMigrate(&User{})
}

AutoMigrate 函数会自动检测模型的变化并同步数据库表结构。

*第五步:插入数据(Create)

现在,我们已经准备好向数据库中插入数据。使用GORM,插入数据:

func main(){
  // ...连接到数据库的代码...
  
  // 插入数据
  newUser := User{Username:"john_White",Password:"123456",Email:"john_White@google.com"}
  db.Create(&newUser)
}

*第六步:查询数据(Read)

GORM 提供丰富的查询功能,允许我们轻松的从数据库中检索数据。

func main() {
    // ... 连接到数据库的代码 ...

    // 查询单个记录
    var user User
    db.First(&user, 1) // 查询ID为1的用户

    // 查询多个记录
    var users []User
    db.Where("username LIKE ?", "%john%").Find(&users) // 查询用户名包含 "john" 的所有用户

    // 查询所有记录
    var allUsers []User
    db.Find(&allUsers) // 查询所有用户
}

*第七步:更新数据(Update)

要更新数据库中的记录,只需更新模型的字段并使用 Save 方法:

func main() {
  // ... 连接到数据库的代码 ...
  // 查询需要更新的记录
  var user User
  db.First(&user, 1)

  // 更新记录
  user.Username = "new_username"
  db.Save(&user)
}

第八步:删除数据(Delete)

最后,要从数据库中删除记录,使用 Delete 方法:

func main() {
    // ... 连接到数据库的代码 ...

    // 查询需要删除的记录
    var user User
    db.First(&user, 1)

    // 删除记录
    db.Delete(&user)
}

结语

这篇笔记演示了如何使用 GORM 连接到数据库并执行 CRUD 操作。通过简单的示例,就可以轻松上手 GORM,并在 Go 语言项目中进行数据库交互。无论是构建简单的应用程序还是复杂的后端服务,GORM 都是一个强大且灵活的工具,可以大大简化数据库操作。希望这篇文章对学习和使用 GORM 有所帮助。继续探索并构建出色的 Go 语言应用程序!