mirror of
				https://github.com/gmsec/gmsec.git
				synced 2025-10-31 02:56:28 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package core
 | |
| 
 | |
| import (
 | |
| 	"gmsec/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())
 | |
| 	dao.dbw = mysqldb.OnInitDBOrm(config.GetMysqlConStr())
 | |
| }
 | |
| 
 | |
| // Destroy 释放
 | |
| func (dao *DaoCore) Destroy() {
 | |
| 	if dao.dbr != nil {
 | |
| 		dao.dbr.OnDestoryDB()
 | |
| 	}
 | |
| 
 | |
| 	if dao.dbw != nil {
 | |
| 		dao.dbw.OnDestoryDB()
 | |
| 	}
 | |
| }
 | 
