GORM库介绍:
GORM是Golang中功能强大且使用广泛的ORM库,它实现了面向对象的思想,通过定义struct模型与数据库表映射,就可以用简洁优雅的代码快速操作数据库。GORM隐藏了大量数据库访问细节,开发者不再需要写原生SQL语句,即可实现建表、CURD、事务等操作。同时它还支持多种数据库,拥有自动迁移、查询构建器、Hooks支持等实用功能。GORM让数据库操作变得简单高效,是Golang开发者的首选ORM库。
依赖安装:
go get -u github.com/go-gorm/gorm
go get -u github.com/go-sql-driver/mysql //此处以mysql为例
使用前的导包:
import "gorm.io/gorm"
import "gorm.io/driver/mysql"
数据库配置信息DSN的配置:
[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
username:password@tcp(host:port)/Dbname?charset=utf8&parseTime=True&loc=Local
其中参数对照信息如下所示:
username 数据库账号
password 数据库密码
protocol表示要使用的数据库类型,比如mysql,postgres等
address表示数据库的地址端口,默认会使用默认端口,所以可以省略
host 数据库连接地址,可以是Ip或者域名
port 数据库端口
Dbname 数据库名
DSN把数据库的连接配置都包含在一个字符串中,这样应用程序就可以通过一个DSN字符串即可获得连接数据库所需的全部信息,DSN隐藏了连接数据库的细节,使代码看起来更简洁。并且可以将DSN集中管理,便于修改维护,所以DSN的意义在于提供了一个标准统一的数据库连接配置方式,降低了连接数据库的复杂度。
创建数据库连接实例:
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
dsn := "testuser:testpassword@tcp(127.0.0.1:3306)/testdb?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("连接数据库失败: " + err.Error())
}
增删改查操作
添加数据
即使用Create函数向数据库中插入一条新的记录:
user := User{Name: "testname", Age: 114514}
db.Create(&user)
删除数据
db.Delete(&user)
修改数据
db.Model(&user).Update("Age", 1515230)
查询数据
var users []User
db.Find(&users)
关闭数据库连接
err = db.Close()
if err != nil {
panic("关闭数据库失败: " + err.Error())
}
总结
GORM是Go语言中功能强大的ORM库,能极大简化数据库操作。要使用GORM,第一步是导入相关包,然后通过定义模型struct与数据库表对应。接下来,通过gorm.Open()建立数据库连接,需要传入数据库dsn。获得DB对象后,增可以通过db.Create()或db.Save()实现。查询通过db.First()、db.Find()等方法,支持条件筛选、分页等。删除通过db.Delete(),更新通过db.Model()及Update()实现。GORM还支持预加载、事务等进阶用法。GORM消除了大量样板代码,开发者可以用面向对象的思维来操作数据库。它让数据库操作更简洁高效。对Go语言后端开发而言,掌握GORM是提升开发效率的重要一步。它可以帮助开发者快速构建稳定的数据库应用。通过理解和掌握GORM的使用,我们可以更轻松地进行数据库开发。