gorm学习记录

安装相应的库

  在命令行输入如下命令即可

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

连接数据库

  mysql连接连接方式如下,其他数据库的连接方式以及高级配置请看官方文档

1
2
3
4
5
6
dsn := "root:password@tcp(127.0.0.1:3306)/dbName?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil{
log.Fatal(err)
return
}

CRUD接口

结构体字段标签

主键

  在与数据库关联时,会有一些特定的约定,比如主键。在gorm中通过标签进行标识,一般情况下,默认将ID作为表的主键,不过可以使用primaryKey标签进行标识

1
2
3
4
5
6
7
8
9
10
type User struct{
ID string //默认ID字段为主键
Name string
}

type User struct{
ID string
UUID string `gorm:"primaryKey"` //使用标签primaryKey将UUID标识为主键
Name string
}

表名

  通过结构体映射的数据库表明,默认为数据库的名字加上’s’,如User则在数据库中对应的表为users、UserAdmin为user_admins,可以通过定义TableName()方法来,修改映射的数据库名

1
2
3
func(User) TableName() string{
return "admin_user" //如果字符串为小驼峰或大驼峰,则会转换为全小写
}

关联数据库表

  要对数据进行增删改查,首先要将数据库表和gorm进行关联,在此处是与go的结构体进行关联

1
2
3
4
5
6
7
8
9
//其中gorm.Model是gorm库默认的一些字段,包括了id,CreatedAt,UpdateAt,DeleteAt这几个字段
type Product struct {
gorm.Model
Code string
Price uint
}

//将结构体与数据库表进行关联,如果数据库中不存在该表,则会自动创建
db.AutoMigrate(&Product{})

创建

  创

参考文章:
参考链接