首先在项目的根目录下创建一个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 configimport ("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      stringDatabase     stringUser         stringPassword     stringCharset      stringHost         stringPort         intURL          stringMaxIdleConns intMaxOpenConns int
}var DBConfig dbConfigfunc 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
}

go项目中使用数据库的配置文件相关推荐

  1. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  2. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  3. XamarinSQLite教程在Xamarin.Android项目中使用数据库

    XamarinSQLite教程在Xamarin.Android项目中使用数据库 在Xamarin.Android项目中使用预设数据库的具体操作步骤如下: (1)创建一个Xamarin.Android项 ...

  4. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

    XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到W ...

  5. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件

    XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件 开发者可以在指定的路径中找到复制的数据库文件,具体的操作步骤如下: (1)单击Mac电脑中Finder菜单中的"前 ...

  6. xamarin怎么调用java的_XamarinSQLite教程在Xamarin.Android项目中使用数据库

    XamarinSQLite教程在Xamarin.Android项目中使用数据库 在Xamarin.Android项目中使用预设数据库的具体操作步骤如下: (1)创建一个Xamarin.Android项 ...

  7. 项目中对数据库的操作

    首先,介绍一下关系型数据库的相关知识: 我们最起码我说接触的都是关系模型: 关系数据结构:关系模型的结构非常单一.关系型数据库以行和列的形式存储数据. 关系操作:关系模型给出了关系操作的能力. 关系完 ...

  8. Springboot项目中使用jasypt给配置文件中密码加密

    前言: 近期所做的项目进入测试阶段,在源码扫描时被检测出一些安全风险,其中就有配置文件中连接数据库的密码不能以明文展示这一问题.思考一下如果以明文展示确实会有很大的安全隐患,万一得罪一些深藏不露的黑客 ...

  9. 谈谈实际项目中对 数据库设计 的一些思考

    注:本人开发经验尚浅,下文主要谈的是自己的一些想法,不足之处请指出. 最近半年时间都花在管理系统的开放上面,对数据库的设计有一些自己的想法,在我看来数据库设计的key point就是妥协.一个设计的比 ...

最新文章

  1. cv python 样例_【CV实战】OpenCV—Hello world代码示例
  2. mac终端mysql的字符集_mac下修改mysql默认字符集为utf8
  3. Webpack核心概念解析
  4. mybatis plus generator配置
  5. [Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]
  6. 快速找出Linux服务器上不该存在恶意或后门文件
  7. 网易开源分布式存储系统 Curve,性能彪悍!这是要吊打阿里?
  8. 2016年1月19日 video.js修改视频源后再调用
  9. ue4设置组合键_UE4快捷键
  10. [状压dp] 玉米田(状压dp)
  11. isis学不到looback口的路由_光纤猫接D-Link无线路由器,怎么设置上网
  12. [Android]Android FTP Server
  13. Android VLc编译
  14. 数据库查询练习(一)
  15. 华硕b365安装服务器系统,华硕B365主板搭载intel8/9代平台安装win7的详细教程
  16. 渗透测试工具(一) CS
  17. 爬虫获取的数据和在自己浏览器看到的不一样
  18. Swift语言中的控制语句和函数
  19. 必备小工具百度翻译桌面版,瞬时翻译
  20. python操作Excel【openpy】

热门文章

  1. 上海银行数据中心迎来智能机器“巡检员”
  2. linux java性能监控工具_性能监控工具以及java堆分析OOM
  3. 成功解决ValueError: cannot assign without a target object
  4. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
  5. 成功解决 OSError: [WinError 193] %1 不是有效的 Win32 应用程序
  6. DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界
  7. TF:利用TF的train.Saver将训练好的W、b模型文件保存+新建载入刚训练好模型(用于以后预测新的数据)
  8. DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略
  9. 《疯狂Java讲义》9
  10. python接口自动化根据请求接口类型进行封装