Gin中记录Gorm数据库表生成-查询使用

2021/11/16 19:14:04

本文主要是介绍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数据库表生成-查询使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程