作者:庾事镁 | 来源:互联网 | 2024-11-03 16:23
首先在项目的根目录下创建一个co
首先在项目的根目录下创建一个config.json文件,内容如下:
{ "database": { "Dialect": "mysql", "Database": "***", /*数据库名*/ "User": "***",/*用户名*/ "Password": "***",/*密码*/ "Charset": "utf8", /*字符集 utf8 */ "Host": "127.0.0.1", /*数据库地址*/ "Port": 3306, /*数据库端口*/ "MaxIdleConns": 5, /*空闲时最大的连接数*/ "MaxOpenConns": 10 /*最大的连接数*/ } }
然后在根目录下创建一个config文件夹,然后创建config.go文件,内容如下:
package config import ( "github.com/goes/logger" "github.com/goes/utils" "encoding/json" "fmt" "io/ioutil" "os" "regexp" ) var jsonData map[string]interface{} func initJSON() { bytes, err := ioutil.ReadFile("./config.json") if err != nil { logger.Error("ReadFile: ", err.Error()) os.Exit(-1) } // 去除注释 configStr := string(bytes[:]) reg := regexp.MustCompile(`/\*.*\*/`) cOnfigStr= reg.ReplaceAllString(configStr, "") bytes = []byte(configStr) if err := json.Unmarshal(bytes, &jsonData); err != nil { logger.Log("json parse fail", err.Error()) os.Exit(-1) } } type dbConfig struct { Dialect string Database string User string Password string Charset string Host string Port int URL string MaxIdleConns int MaxOpenConns int } var DBConfig dbConfig func initDB() { utils.SetObjectByJSON(&DBConfig, jsonData["database"].(map[string]interface{})) url := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=True&loc=Local", DBConfig.User, DBConfig.Password, DBConfig.Host, DBConfig.Port, DBConfig.Database, DBConfig.Charset) DBConfig.URL = url } func init() { initJSON() initDB() }
项目中的使用方法如下:
/** * 初始化启动数据库服务 */ func init() { fmt.Println("数据库持久化服务器启动:") db, err := gorm.Open(config.DBConfig.Dialect, config.DBConfig.URL) if err != nil { fmt.Println("open db connect error.", err) os.Exit(-1) } db.DB().SetMaxIdleConns(config.DBConfig.MaxIdleConns) db.DB().SetMaxOpenConns(config.DBConfig.MaxOpenConns) model.DB = db }