123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package lib
- import (
- "encoding/json"
- "fmt"
- "gitdxz.51daxuetong.cn/go_dev/bids_rpcx/config"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "sync"
- "time"
- )
- var Db *gorm.DB
- var syncDb sync.Once
- func GetDb() *gorm.DB {
- syncDb.Do(func() {
- cc := config.GetConfig()
- fmt.Println(cc.All())
- dbHost := cc.String("db_host")
- dbPort := cc.String("db_port")
- dbName := cc.String("db_database")
- dbUser := cc.String("db_username")
- dbPwd := cc.String("db_password")
- dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPwd, dbHost, dbPort, dbName)
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
- if err != nil {
- panic(err.Error() + dsn)
- }
- sqlDB, err := db.DB()
- if err != nil {
- panic(err)
- }
- sqlDB.SetMaxIdleConns(1)
- sqlDB.SetMaxOpenConns(5)
- sqlDB.SetConnMaxLifetime(time.Hour)
- data, _ := json.Marshal(sqlDB.Stats()) //获得当前的SQL配置情况
- fmt.Println(data)
- Db = db
- })
- return Db
- }
|