Go读取Toml:无法读取字段的乌龙

直接贴代码:

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
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容