1 Star 0 Fork 0

小于的个人工具集/dbgorm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
dervice.go 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2024-06-25 17:42 +08:00 . 1
package dbgorm
import (
"sync"
"gorm.io/gorm"
)
// 本地驱动信息存储,以及对应的lock锁
var _default_dervice map[string]func(dsn string) gorm.Dialector = map[string]func(dsn string) gorm.Dialector{}
var _default_dervice_lock sync.Mutex
// 设置数据库驱动信息
// 如:连接MySQL数据库:dbgorm.SetDervice("mysql",mysql.Open)
// 如果数据库驱动已存在的话,此处会直接跳过本次设置
//
// name 驱动名称
// fun 驱动打开函数
func SetDervice(name string, fun func(dsn string) gorm.Dialector) {
if _, ok := _default_dervice[name]; ok {
// 如果驱动已存在则直接跳过本次插入
return
}
_default_dervice_lock.Lock()
defer _default_dervice_lock.Unlock()
_default_dervice[name] = fun
}
// 设置数据库驱动信息
// 如:连接MySQL数据库:dbgorm.SetDervices(mysql.Open)
// 如果数据库驱动已存在的话,此处会直接跳过本次设置
//
// fun 驱动打开函数
func SetDervices(fun ...func(dsn string) gorm.Dialector) {
_default_dervice_lock.Lock()
defer _default_dervice_lock.Unlock()
for i := 0; i < len(fun); i++ {
name := fun[i]("").Name()
_default_dervice[name] = fun[i]
}
}
// 设置数据库驱动信息
// 如:连接MySQL数据库:dbgorm.SetDervice("mysql",mysql.Open)
// 此操作为强制设置驱动,如果没有则会进行设置,如果有则会进行替换
//
// name 驱动名称
// fun 驱动打开函数
func ReplaceDervice(name string, fun func(dsn string) gorm.Dialector) {
_default_dervice_lock.Lock()
defer _default_dervice_lock.Unlock()
_default_dervice[name] = fun
}
// 获取已设置的数据库驱动列表
func GetDerviceName() []string {
dervice_name := []string{}
for i, _ := range _default_dervice {
dervice_name = append(dervice_name, i)
}
return dervice_name
}
// 判断某驱动名称是否已设置
//
// name 驱动名称
func HasDervice(name string) bool {
if _, ok := _default_dervice[name]; ok {
return true
}
return false
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xgotool/dbgorm.git
git@gitee.com:xgotool/dbgorm.git
xgotool
dbgorm
dbgorm
master

搜索帮助