mirror of
https://github.com/xxjwxc/public.git
synced 2025-09-26 20:01:19 +08:00
55 lines
925 B
Go
55 lines
925 B
Go
package mysqldb
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/xie1xiao1jun/public/mylog"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
type MySqlDB struct {
|
|
*gorm.DB
|
|
}
|
|
|
|
func OnInitDBOrm(dataSourceName string) (orm *MySqlDB) {
|
|
orm = new(MySqlDB)
|
|
orm.OnGetDBOrm(dataSourceName)
|
|
return
|
|
}
|
|
|
|
func (i *MySqlDB) OnGetDBOrm(dataSourceName string) (orm *gorm.DB) {
|
|
if i.DB == nil {
|
|
var err error
|
|
i.DB, err = gorm.Open("mysql", dataSourceName)
|
|
if err != nil {
|
|
mylog.Print(mylog.Log_Error, fmt.Sprintf("Got error when connect database, the error is '%v'", err))
|
|
}
|
|
}
|
|
|
|
i.DB.SingularTable(true) //全局禁用表名复数
|
|
orm = i.DB
|
|
if isDev {
|
|
i.DB.LogMode(true)
|
|
//beedb.OnDebug = true
|
|
} else {
|
|
i.DB.SetLogger(DbLog{})
|
|
}
|
|
return
|
|
}
|
|
|
|
var isDev bool = false
|
|
|
|
//是否调试
|
|
func (i *MySqlDB) SetIsDev(b bool) {
|
|
isDev = b
|
|
}
|
|
|
|
func (i *MySqlDB) OnDestoryDB() {
|
|
if i.DB != nil {
|
|
i.DB.Close()
|
|
i.DB = nil
|
|
}
|
|
}
|