1 Star 0 Fork 0

后端组/mvc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
base.go 2.08 KB
一键复制 编辑 原始数据 按行查看 历史
heweiosc 提交于 5年前 . add redis servide
package models
import (
"gitee.com/nuokwan_backend_group/mvc/Base"
"gitee.com/nuokwan_backend_group/mvc/starters"
"github.com/jinzhu/gorm"
)
type ModelWrapper struct {
Db *gorm.DB
ConnectorName string
Conn string
Connector starters.IDataBaseConnector
}
var NotExists = Base.LogicError("记录不存在")
func (wrapper *ModelWrapper) Connection(name ...string) starters.IDataBaseConnector {
var (
err error
ok bool
any interface{}
connection string
driver string
connector starters.IDataBaseConnector
)
if wrapper.ConnectorName == "" {
wrapper.ConnectorName = starters.MysqlConnectorId
}
if len(name) > 0 {
driver = Base.DriverName("db", name[0])
} else {
driver = Base.DriverName("db", "default")
}
if wrapper.ConnectorName != "" && wrapper.Connector != nil {
connector = wrapper.Connector
} else {
any = Base.Container(wrapper.ConnectorName)
if any == nil {
panic(Base.RuntimeError(wrapper.ConnectorName + " not register"))
}
connector, ok = any.(starters.IDataBaseConnector)
if !ok {
panic(Base.RuntimeError("db 服务注册的connector类型不匹配 connection:" + connection))
}
}
if connection, err = Base.Config().Get(driver); err != nil {
panic(Base.RuntimeError("db driver 配置不存在:" + driver))
}
if connector != nil {
wrapper.Connector = connector
}
// 返回链接器
if connection == wrapper.Conn && wrapper.Db != nil {
return connector
}
// 链接
if wrapper.Db == nil {
wrapper.Db = wrapper.Connector.Connection(connection)
wrapper.Conn = connection
}
return connector
}
func (wrapper *ModelWrapper) GetOrm() *gorm.DB {
if wrapper.Db == nil {
wrapper.Connection()
}
return wrapper.Db
}
func (wrapper *ModelWrapper) SetOrm(orm *gorm.DB) *ModelWrapper {
wrapper.Close()
wrapper.Db = orm
return wrapper
}
func (wrapper *ModelWrapper) Close() {
if wrapper.Db != nil {
_ = wrapper.Db.Close()
wrapper.Db = nil
}
}
func (wrapper *ModelWrapper) Destroy() {
wrapper.Close()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/nuokwan_backend_group/mvc.git
git@gitee.com:nuokwan_backend_group/mvc.git
nuokwan_backend_group
mvc
mvc
1bf86c47ef7b

搜索帮助