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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM