Files
public/mysqldb/mysqldb.go
2020-03-29 21:06:06 +08:00

52 lines
922 B
Go

package mysqldb
import (
"github.com/xxjwxc/public/dev"
"github.com/xxjwxc/public/errors"
"github.com/xxjwxc/public/mylog"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type MySqlDB struct {
*gorm.DB
IsInit bool
}
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.Error(errors.Wrap(err, "Got error when connect database:"+dataSourceName))
return nil
}
i.IsInit = true
}
i.DB.SingularTable(true) //全局禁用表名复数
if dev.OnIsDev() {
i.DB.LogMode(true)
//beedb.OnDebug = true
} else {
i.DB.SetLogger(DbLog{})
}
orm = i.DB
return
}
func (i *MySqlDB) OnDestoryDB() {
if i.DB != nil {
i.DB.Close()
i.DB = nil
}
}