Gin 中使用 GORM 操作 mysql 数据库

Gin 中使用 GORM 操作 mysql 数据库

GORM 是 Golang 的一个 orm 框架。简单说,ORM 就是通过实例对象的语法,完成关系型 数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。使用 ORM 框架可以让我们更方便的操作数据库

GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Serve

官方文档:https://gorm.io/zh_CN/docs/index.html

MySQL

对db进行全局封装,公有变量,暴露 model/core.go

1//gorm初始化数据库
package models
//https://gorm.io/zh_CN/docs/connecting_to_the_database.html
import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)
//gorm初始化数据库
//全局使用,定义成共有的
var DB *gorm.DB
var err error
func init() {
	//dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
	dsn := "gin:gin@tcp(111.229.91.20:3306)/gin?charset=utf8mb4&parseTime=True&loc=Local"
	//全局使用,定义成共有的
	DB, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil{
		//连接失败
		fmt.Println(err)
	}else{
		//成功
		fmt.Println(DB)
	}

}

表结构和结构体

2//定义 user 模型:
package models
//定义 user 模型:
type User struct {// 默认表名是 `users`
	//首字母大写,增加外部访问
	Id int
	Username string
	Age int
	Email string
	AddTime int
}
//表示把 User 结构体默认操作的表改为 user 表
func (User) TableName() string{
	return "user"
}

在实际项目中定义数据库模型注意以下几点:

1、结构体的名称必须首字母大写 ,并和数据库表名称对应。例如:表名称为 user 结构体

名称定义成 User,表名称为 article_cate 结构体名称定义成 ArticleCate

2、结构体中的字段名称首字母必须大写,并和数据库表中的字段一一对应。例如:下面结

构体中的 Id 和数据库中的 id 对应,Username 和数据库中的 username 对应,Age 和数据库中

的 age 对应,Email 和数据库中的 email 对应,AddTime 和数据库中的 add_time 字段对应

3、默认情况表名是结构体名称的复数形式。如果我们的结构体名称定义成 User,表示这个

模型默认操作的是 users 表。

4、我们可以使用结构体中的自定义方法 TableName 改变结构体的默认表名称,如下:

func (User) TableName() string { return "user" }

表示把 User 结构体默认操作的表改为 user 表

gorm.Model

GORM 定义一个 gorm.Model 结构体,其包括字段 ID、CreatedAt、UpdatedAt、DeletedAt

3// gorm.Model 的定义
posted @ 2021-10-27 14:15  成强  阅读(1705)  评论(0编辑  收藏  举报