前言
为了方便之后切换数据库或者其他的一下数据,以连接数据库为例,需要在go初始化的时候加载配置文件中的数据,例如yml环境配置文件
本人是java开发,在学习go方面有很多不足,因此写下来作为记录,方便温习
一、使用到的依赖
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jialanli/windward"
)
二、使用步骤
1.引入库
go get -t github.com/jialanli/windward
2.新建文件夹并编写配置文件
data:
name: root
password: root
database: service
3.创建结构体/对象
type Config struct {
Data struct {
Name string `yaml:"name"`
Password string `yaml:"password"`
Database string `yaml:"database"`
}
}
4.加载配置文件并初始化
代码如下(示例):
func init(){
//加载配置文件
file := "C:\\Users\\86176\\Desktop\\env.yml" //定义文件所在位置
w := windward.GetWindward()
w.InitConf([]string{file}) //初始化自定义的配置文件
//获取数据库连接名密码等数据
var config model.Config //定义结构体【注意:这里需要有两层结构,因为w.ReadConfig读取的是data以及data中的数据】
//var params interface{}
err := w.ReadConfig(file, &config)
if err != nil{
fmt.Sprintln("初始化数据库失败")
return
}
//name := w.GetValString(file,"name") //这里是单独获取配置文件中的数据,按需使用
//password := w.GetValString(file,"password")
//database := w.GetValString(file,"database")
connect := fmt.Sprintf("%s:%s@tcp(127.0.0.1:3306)/%s?charset=utf8", config.Data.Name,config.Data.Password,config.Data.Database)
db, _ = sql.Open("mysql", connect)
if err := db.Ping(); err != nil {
fmt.Println("open database fail")
return
}
defer db.Close()
}
感谢大佬的博文,让我了解了这个方法,读取配置文件数据