直接贴代码:
dbconfig.toml:
[database]
host="127.0.0.1"
port="3306"
username="root"
password="root"
dbname="poc"
db.go:
package main
import (
"database/sql"
"fmt"
"github.com/BurntSushi/toml"
_ "github.com/go-sql-driver/mysql"
)
type DBConfigFile struct {
database DBConfig
}
type DBConfig struct {
host string
port string
username string
password string
dbname string
}
var db *sql.DB
func initDB() {
// 读取dbconfig.toml的数据库配置
var dbconfigfile DBConfigFile
if _, err := toml.DecodeFile("dbconfig.toml", &dbconfigfile); err != nil {
panic(err)
}
fmt.Println(dbconfigfile)
dbconfig := dbconfigfile.Database
// 创建数据库链接
dsn := dbconfig.username + ":" + dbconfig.password + "@tcp(" + dbconfig.host + ":" + dbconfig.port + ")/" + dbconfig.dbname + "?charset=utf8"
fmt.Println(dsn)
db, _ = sql.Open("mysql", dsn)
if err := db.Ping(); err != nil {
panic(err)
}
}
func GetDB() *sql.DB {
// 如果没有初始化要先初始化
if db == nil {
initDB()
}
return db
}
运行结果是怎么读取都读不到信息,我原本都想放弃用toml了,结果原因是结构体的字段名也和方法名一样,小写就是私有字段,toml工具无法写信息进去。把首字母大写就行了。
我还以为是什么问题呢。。。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END










暂无评论内容