一、配置信息:mysql.json
- {
- "host":"localhost",
- "port":"3306",
- "user_name":"root",
- "password":"Qazwsx123",
- "database":"gin_project",
- "logo_mode":true
- }
- package data_source
-
- import (
- "encoding/json"
- "io/ioutil"
- "os"
- )
-
- type MysqlConf struct {
- Host string `json:"host"`
- Port string `json:"port"`
- UserName string `json:"user_name"`
- Password string `json:"password"`
- DataBase string `json:"database"`
- LogoMode bool `json:"logo_mode"`
- }
-
- func LoadMysqlConf() *MysqlConf {
-
- mysql_conf := MysqlConf{}
-
- file, err := os.Open("conf/mysql_conf.json")
-
- if err != nil {
- panic(err)
- }
-
- defer file.Close()
-
- byte_data, err2 := ioutil.ReadAll(file)
-
- if err2 != nil {
- panic(err2)
- }
-
- err3 := json.Unmarshal(byte_data, &mysql_conf)
-
- if err3 != nil {
- panic(err3)
- }
-
- return &mysql_conf
-
- }
- package data_source
-
- import (
- "github.com/jinzhu/gorm"
- "gin_project/models"
- _ "github.com/jinzhu/gorm/dialects/mysql"
- "fmt"
- )
-
- var Db *gorm.DB
- var err error
-
-
- func init() {
-
- mysql_conf := LoadMysqlConf()
-
- logo_mode := mysql_conf.LogoMode
-
- data_source := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=true&loc=Local",
- mysql_conf.UserName,
- mysql_conf.Password,
- mysql_conf.Host,
- mysql_conf.Port,
- mysql_conf.DataBase,
-
-
- )
-
-
- Db,err = gorm.Open("mysql",data_source)
-
- if err != nil {
- panic(err)
- }
-
- Db.LogMode(logo_mode)
-
-
- Db.DB().SetMaxOpenConns(100) // 最大连接数
- Db.DB().SetMaxIdleConns(50) // 最大空闲数
-
- Db.AutoMigrate(&models.User{})
- }
四 使用 在main.go 引入
_ "gin_project/data_source"