Files
easygoadmin/utils/db.go
yaoyilin 772cc9ff7e fix: 增加基于mongodb的图片模型
增加基于mongodb的图片模型
2022-11-06 23:35:20 +08:00

63 lines
1.4 KiB
Go

/**
* 数据库连接工具
* @author
* @since 2021/9/8
* @File : db
*/
package utils
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/go-xorm/xorm"
"gitlab.52pay.top/go/easygoadmin/library/cfg"
"time"
"xorm.io/core"
)
var XormDb *xorm.Engine
func init() {
fmt.Println("初始化并连接数据库")
// 获取配置实例
config := cfg.Instance()
if config == nil {
return
}
var err error
XormDb, err = xorm.NewEngine("mysql", config.Database.Master)
if err != nil {
fmt.Printf("数据库连接错误:%v", err.Error())
return
}
// 通过engine.Ping()来进行数据库的连接测试是否可以连接到数据库。
err = XormDb.Ping()
if err == nil {
fmt.Println("数据库连接成功")
//关闭连接
//defer XormDb.Close()
} else {
fmt.Printf("数据库连接错误:%v", err.Error())
return
}
XormDb.DatabaseTZ = time.Local // 必须
XormDb.TZLocation = time.Local // 必须
// 设置连接池的空闲数大小
XormDb.SetMaxIdleConns(10)
// 设置最大打开连接数
XormDb.SetMaxOpenConns(30)
// 结构体与数据表的映射
tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, config.Database.Prev)
XormDb.SetTableMapper(tbMapper)
// 开启调试模式和打印日志,会在控制台打印执行的sql
if cfg.Instance().Database.Debug {
XormDb.ShowSQL(cfg.Instance().Database.Debug)
XormDb.Logger().SetLevel(core.LOG_DEBUG)
}
}