这是我参与「第五届青训营」伴学笔记创作活动的第4天
Gorm是什么
Gorm在掘金官方给的解释中是一款用Golang开发的ORM框架,ORM则是对象关系映射的意思。那么因为orm有一些好处,比如说可以让新手避免慢sql。目前Gorm已经是Golang web中最流行的orm框架之一了。 安装很简单,用go get指令即可。
Gorm链接数据库
Gorm支持多种数据库的除了官方支持的,还可以通过自定义介入其他数据库。以mysql为例,链接非常简单。 只需要import来过包即可
import (
"gorm.io/driver/mysql" // gorm mysql 驱动
"gorm.io/gorm"// gorm
)
还有连接代码,这里copy一下掘金给的代码好了。
// MySQL 配置信息
username := "root" // 账号
password := "xxxxxx" // 密码
host := "127.0.0.1" // 地址
port := 3306 // 端口
DBname := "gorm1" // 数据库名称
timeout := "10s" // 连接超时,10秒
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local&timeout=%s", username, password, host, port, DBname, timeout)
// Open 连接
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect mysql.")
}
这里就是一个很简单的连接。
自动迁移
这个功能是一个很好用的功能,就是说Gorm可以自动建表,不过好像之前也遇到过有类似功能的orm。 也就是说在数据库表未初始化的时候就根据结构体自动建。还是挺好用的。
利用db.AutoMigrate方法即可自动建表。
db.AutoMigrate(&User{}, &Product{}, &Order{})
db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})
增删改查
这个就比较常规了, 增就create,查就db。first 改就直接改然后save,删就delete即可
// 增
db.Create(&User{
Name: "6⃣️",
Age: 66,
Addr: "京海",
})
// 查
var user User
db.First(&user)
fmt.Println(user)
// 改
user.Name = "老六"
db.Save(&user)
fmt.Println(user)
// 删
db.Delete(&user)
}
如上图就是简单的使用方式。当然,代码没贴全,完整的肯定是有一些其他的比如说package,import,生成结构体等等。
主要用到的包是package main import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" )
标签
这个标签就没什么写的了,主要是用的时候能查到就行,或者说用的多就会背了 具体可以在别人的教程里面看到,比如说colum这个列名,type,size,等等。有的时候比如说声明model时,tag是可选的。