mirror of
https://github.com/gmsec/gmsec.git
synced 2025-10-22 07:20:11 +08:00
67 lines
1.2 KiB
Go
67 lines
1.2 KiB
Go
package core
|
|
|
|
import (
|
|
"example/internal/config"
|
|
"runtime"
|
|
|
|
"github.com/xxjwxc/public/errors"
|
|
"github.com/xxjwxc/public/mylog"
|
|
"github.com/xxjwxc/public/mysqldb"
|
|
)
|
|
|
|
// Dao ...
|
|
var Dao DaoCore
|
|
|
|
// DaoCore core dao
|
|
type DaoCore struct {
|
|
dbr *mysqldb.MySqlDB // 读库
|
|
dbw *mysqldb.MySqlDB // 写库
|
|
}
|
|
|
|
func init() {
|
|
Dao.InitDao()
|
|
}
|
|
|
|
// GetDB 获取读数据库
|
|
func (dao *DaoCore) GetDB() *mysqldb.MySqlDB {
|
|
if dao.dbr == nil {
|
|
mylog.Error(errors.New("dbr is nil. "))
|
|
}
|
|
return dao.dbr
|
|
}
|
|
|
|
// GetDBr 获取读数据库
|
|
func (dao *DaoCore) GetDBr() *mysqldb.MySqlDB {
|
|
if dao.dbr == nil {
|
|
mylog.Error(errors.New("dbr is nil. "))
|
|
}
|
|
return dao.dbr
|
|
}
|
|
|
|
// GetDBw 获取写数据库
|
|
func (dao *DaoCore) GetDBw() *mysqldb.MySqlDB {
|
|
if dao.dbw == nil {
|
|
mylog.Error(errors.New("dbw is nil. "))
|
|
}
|
|
return dao.dbw
|
|
}
|
|
|
|
// InitDao 初始化dao
|
|
func (dao *DaoCore) InitDao() {
|
|
runtime.SetFinalizer(dao, dao.Destroy) //析构时触发
|
|
|
|
dao.dbr = mysqldb.OnInitDBOrm(config.GetMysqlConStr(), true)
|
|
dao.dbw = mysqldb.OnInitDBOrm(config.GetMysqlConStr(), true)
|
|
}
|
|
|
|
// Destroy 释放
|
|
func (dao *DaoCore) Destroy() {
|
|
if dao.dbr != nil {
|
|
dao.dbr.OnDestoryDB()
|
|
}
|
|
|
|
if dao.dbw != nil {
|
|
dao.dbw.OnDestoryDB()
|
|
}
|
|
}
|