go项目中使用数据库的配置文件
2018-10-25 10:33
393 查看
版权声明:刘三洋 https://blog.csdn.net/qq_37133717/article/details/83375794
首先在项目的根目录下创建一个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 }阅读更多
相关文章推荐
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第一部分)
- AppFramework1.0数据库访问组件使用说明(三)配置文件详解
- 使用websphere开发J2EE项目时,在服务器配置文件->“环境”->“类路径”中添加的ORACLE的JDBC文件classes12.zip文件是否有效呢?
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- web 项目中 在spring中使用log4j 定时刷新log4j配置文件
- 一个WEB项目安装包,自动配置数据库,config文件和虚拟目录。。(原创)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(补充部分二)
- Quartz 最简单使用,没有用到配置文件,不适用于项目
- 一个WEB项目安装包,自动配置数据库,config文件和虚拟目录。。(转)
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)
- 大型Java项目中使用maven进行管理,pom.xml文件中build的配置
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第三部分,附源代码)
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第二部分)
- 不同的项目使用同一个配置文件
- NHibernate 配置文件的处理和使用多数据库的多层架构思路(第二部分)
- web 项目中 在spring中使用log4j 定时刷新log4j配置文件