- 这篇笔记记录我在使用gorm框架进行大作业开发时遇到的问题。
- 关于gorm框架的使用我在之前就发过笔记:Gorm框架入门 | 青训营笔记 - 掘金 (juejin.cn)
快速开始
在main文件里面添加如下代码再go mod tidy就可以一键导入gorm框架
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main(){
dsn := "root:123456@tcp(localhost:3306)/mybase?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println("连接失败", err)
return
} else {
fmt.Println("连接成功")
}
}
先初始化数据库
在这里补充一个在代码中新建表的方法,之前都是在数据库里面已有的表操作的,比较麻烦。
先贴上官方文档:迁移 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
常用的Migrator方法
- 创建表(User是在go语言中定义的结构体)
m:=db.Migrator()
m.CreateTable(&User{})
- 是否存在表
//以结构体的方式查
m.HasTable(&User{})
//以表名的方式查
fmt.Println(m.HasTable("gva_users"))
- 删除表
err = m.DropTable(&User{})
if err != nil {
fmt.Println(err)
}
err = m.DropTable("gva_users")
if err != nil {
fmt.Println(err)
}
if m.HasTable(&User{}) {
m.DropTable(&User{})
} else {
m.CreateTable(&User{})
}