package db import ( "gorm.io/driver/mysql" "gorm.io/gorm" "ruleModelEngine/config" "time" ) var DB *gorm.DB //// 初始化数据库连接 //func InitDB() error { // dsn := "root:c++java123@tcp(" + config.DataBase.Host + ":" + config.DataBase.Port + ")/" + config.DataBase.Name + "?charset=utf8mb4&parseTime=True&loc=Local" // var err error // db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) // if err != nil { // return err // } // return nil //} func ConnectDB() error { dsn := config.DataBase.Username + ":" + config.DataBase.Password + "@tcp(" + config.DataBase.Host + ":" + config.DataBase.Port + ")/" + config.DataBase.Name + "?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { return err } sqlDb, err := db.DB() if err != nil { return err } sqlDb.SetMaxIdleConns(2) sqlDb.SetMaxOpenConns(1) sqlDb.SetConnMaxLifetime(time.Duration(120) * time.Second) sqlDb.SetConnMaxIdleTime(time.Duration(1800) * time.Second) DB = db return nil }