gorm简介
gorm是一个使go语言与数据库进行连接的框架工具,它的一部分操作可以简化我们的查询过程,从而更高效的获得查询结果。
安装和配置
1.安装gorm
我们需要打开终端输入以下两句话:
go get -u gorm.io/gorm
go get -u gorm.io/driver/<your_database_driver>
2.引入依赖
我们需要在gorm数据库被应用的界面顶端都加上import依赖去声明一下gorm包。
import (
"gorm.io/gorm"
"gorm.io/driver/<your_database_driver>"
)
3.配置数据库连接
要创建一个配置数据库连接的函数,目的是便于配置全局使用。dsn就和Java中的差不多,主要是想表明账户名和密码还有连接地址和连接的库。<your_database_driver>是你的连接驱动,可以是mysql的也可以是sqlite(mysql的轻量型)的。
var db *gorm.DB
func ConnectDatabase() {
dsn := "your_dsn_string" // 数据库连接字符串
db, err := gorm.Open(<your_database_driver>.Open(dsn), &gorm.Config{})
if err != nil {
panic("Failed to connect to database")
}
}
定义模型结构体
我们在操作数据库的表之前需要定义模型,模型的内容正好与数据库表中的列相对应。当模型的名字与表中的名字不一致时我们一般在模型的后面加上gorm:"column:xxx"。这样就可以让gorm识别当前模型是数据库中的哪个数据。
type User struct {
ID uint
Name string
Email string
}
我们一般定义模型时也会加上CreatedAt和UpdateAt,这样是为了方便记录创建的时间和修改的时间。
创建表
我们可以直接使用gorm直接把表给创建出来,以下是实例,可以根据这个进行其他表的创建:
func Migrate() {
db.AutoMigrate(&User{})
}
这样的话可以直接把表创建出来。
增删改查
增
平时我们要在数据库中插入一个新数据,我们可以使用Create的方法。代码使用如下:
func CreateUser(name, email string) {
user := User{
Name: name,
Email: email
}
db.Create(&user)
}
主要是用于创建新用户或者插入新数据。
查
在我看来,查询是这四个里面最简单的了,再gorm中提供了许多种查询方法,在这里我们使用First方法查询,就是需要用户的id然后就能够查询出来:
func FindUserByID(id uint) (User, error) {
var user User result := db.First(&user, id)
if result.Error != nil {
return User{},
result.Error
}
return user, nil
}
删
删可以说是除了修改在这四个里面最难的了,我们一般都是利用查询id对指定的用户进行删除。在gorm之中我们可以使用Delete方法。
func DeleteUser(id uint) {
var user User
result := db.First(&user, id)
if result.Error != nil {
return result.Error
}
db.Delete(&user)
}
上面就是删除某个指定数据的代码,我们先申请了一个User型,利用id将这个用户查询出来,我们再使用Delete方法把指定的用户进行删除。
改
我认为最难的就是修改,但是只是对于其他三个来说难而已,对于咱们的认知能力来说还是很简单的。
实现思路:我们可以先利用id查询出一个用户,然后再给这个用户设置好我们想改的值,最后再用Save方法将用户返回去。
func UpdateUser(id uint, name, email string) (User, error) {
var user User
result := db.First(&user, id)
if result.Error != nil {
return User{}, result.Error
}
user.Name = name
user.Email = email
db.Save(&user)
return user, nil
}