本文主要是介绍Gin中记录Gorm数据库表生成-查询使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Gin中记录Gorm数据库表生成-查询使用
全局封装common.DB
一、全局封装初始化数据库 common/databse.go
package common
import (
"fmt"
"gopkg.in/ini.v1"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"os"
"supplierQuerySystemAPICode/model"
)
//gorm初始化数据库
//全局使用,定义成共有的
var DB *gorm.DB
var err error
func init() {
//读取.ini里面的数据库配置
config, err := ini.Load("./config/app.ini")
if err != nil {
//失败
fmt.Printf("Fail to read file: %v", err)
os.Exit(1)
}
ip := config.Section("mysql").Key("ip").String()
port := config.Section("mysql").Key("port").String()
user := config.Section("mysql").Key("user").String()
password := config.Section("mysql").Key("password").String()
database := config.Section("mysql").Key("database").String()
fmt.Println("App Mode:", config.Section("mysql").Key("password").String())
fmt.Println("App Mode:", config.Section("redis").Key("ip").String())
//dsn := "gin:gin@tcp(***.***.91.**:3306)/gin?charset=utf8mb4&parseTime=True&loc=Local"
dsn := fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8mb4&parseTime=True&loc=Local",
user,
password,
ip,
port,
database)
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
QueryFields: true, //打印sql
SkipDefaultTransaction: true, //禁用mysql事务
})
// DB.Debug()
if err != nil {
fmt.Println(err)
}
//自动创建数据表User
DB.AutoMigrate(&model.User{})
}
配置文件 config/app.ini
app_name = 成强
[mysql]
ip = ***.229.***.20
port = 3306
user = ***
password = gin
database = ***
[redis]
ip = 127.0.0.1
port = 6379
二、定义要生成的数据库字段-结构体 :model/user.go
package model
import "gorm.io/gorm"
//通过迁移migrate生成的数据库表 -字段 限制
type User struct {
gorm.Model
Name string `gorm:"type:varchar(20);not null"`
Telephone string `gorm:"varchar(11);not null;unique"`
Password string `gorm:"size:255;not null"`
}
四、迁移生成数据库字段(写在common/database.go)尾部
//自动创建数据表User
DB.AutoMigrate(&model.User{})
三、使用封装好的common.DB进行查询操作
var user model.User
common.DB.Where("telephone = ?", telephone).First(&user)
if user.ID != 0 {
return true
}
return false
这篇关于Gin中记录Gorm数据库表生成-查询使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!