package mysql import ( "dsbqj-admin/pkg/logger" "fmt" "os" "time" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" // _ "github.com/jinzhu/gorm/dialects/mysql" ) // DB 数据库链接单例 var DB *gorm.DB // Database 在中间件中初始化mysql链接 func Database(connString string) { logger.Info("开始连接mysql....%s", connString) db, err := gorm.Open("mysql", connString) db.LogMode(true) // Error if err != nil { fmt.Println(err) panic(err) } if gin.Mode() == "release" { db.LogMode(false) } //设置连接池 //空闲 db.DB().SetMaxIdleConns(20) //打开 db.DB().SetMaxOpenConns(100) //超时 db.DB().SetConnMaxLifetime(time.Second * 30) gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string { return os.Getenv("MYSQL_PREFIX") + defaultTableName } DB = db logger.Info("连接mysql成功...") migration() } func Connect(connString string, prefix string) *gorm.DB { fmt.Println("开始连接mysql....") db, err := gorm.Open("mysql", connString) db.LogMode(true) // Error if err != nil { panic(err) } if gin.Mode() == "release" { db.LogMode(false) } //设置连接池 //空闲 db.DB().SetMaxIdleConns(20) //打开 db.DB().SetMaxOpenConns(100) //超时 db.DB().SetConnMaxLifetime(time.Second * 30) gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string { return prefix + defaultTableName } fmt.Println("连接mysql成功...") return db }