有童鞋反应说让把,基础配置部分,包括数据库访问,和配置部分也贴出了。

这里插入一篇文件,单独做个介绍

首先在主工程目录创建conf 和db 两个配置包如图:

其中app.ini 包含的时候此工程的运行配置,包含端口号,数据库,redis缓存等等。

这个后面会根据业务的需求,添加不同的配置信息。

创建app.ini

[http]
port = ":8888"

[mongo]
url = "127.0.0.1:27017"
db = "mycol"
username = "testname"
password = "testname"

[redis]
url = "127.0.0.1:6379"

在db包内创建

mgo.go 访问mongodb的。

package db

import (
	"context"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"myProject/myProjectUtils"
	"time"
)

const dbName = "mycol"

/* mongodb */
//func InitMongoDB() (collection *mongo.Database) {
//	if mgo == nil {
//		mgo = connectDB()
//	}
//	return mgo
//}
/* mongodb */
func InitMongoDB2() (collection *mongo.Database) {
	if mgo == nil {
		mgo = connectDB()
	}
	return mgo
}

var mgo *mongo.Database

func connectDB() (collection *mongo.Database) {
	//var url = myProjectUtils.GetConf("mongo", "url")
	//opts := options.ClientOptions{
	//	Hosts: []string{url}
	//}

	config := myProjectUtils.GetConfInfo("mongo")

	opts := options.ClientOptions{Hosts: []string{config.Key("url").String()}}
	credential := options.Credential{
		Username: config.Key("username").String(), Password: config.Key("password").String(),
		AuthSource: config.Key("db").String(),
	}
	opts.Auth = &credential

	client, err := mongo.NewClient(&opts)
	if err != nil {
		panic(err)
		return nil
	}
	ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
	defer cancel()
	err = client.Connect(ctx)
	if err != nil {
		return nil
	}
	var dbName = myProjectUtils.GetConf("mongo", "db")
	collection = client.Database(dbName)
	return collection
}

/* mongodb table Name */
const (
	User  string = "user"
	Role  string = "role"
	Test  string = "test"
	Test1 string = "test1"
	Test2 string = "test2"
)

创建mysql.go 

package db

import (
	"database/sql"
	"fmt"
)

const (
	DB_Driver = "root:[email protected](localhost:3306)/hcydb?charset=utf8"
)

func openDB() (success bool, db *sql.DB) {
	var isOpen bool
	db, err := sql.Open("mysql", DB_Driver)
	if err != nil {
		isOpen = false
	} else {
		isOpen = true
	}
	CheckErr(err)
	return isOpen, db
}

var mysqlDB *sql.DB

func InitMysqlDb() *sql.DB {
	if mysqlDB == nil {
		result, DB := openDB()
		if result {
			mysqlDB = DB
		}
	}
	return mysqlDB
}

func CheckErr(err error) {
	if err != nil {
		fmt.Println("err:", err)
	}
}

基本的配置加载就说这么多了。