1 Star 1 Fork 1

K/ginorigin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mysql.go 2.10 KB
一键复制 编辑 原始数据 按行查看 历史
package connect
import (
"database/sql"
"errors"
mysqldriver "gorm.io/driver/mysql"
"gorm.io/gorm"
"gitee.com/chenhonghua/ginorigin/config/system/logger"
)
type Mysql struct {
Path string `mapstructure:"path" json:"path" yaml:"path"` // 服务器地址
Port string `mapstructure:"port" json:"port" yaml:"port"` // 端口
Config string `mapstructure:"config" json:"config" yaml:"config"` // 高级配置
Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"` // 数据库名
Username string `mapstructure:"username" json:"username" yaml:"username"` // 数据库用户名
Password string `mapstructure:"password" json:"password" yaml:"password"` // 数据库密码
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"` // 空闲中的最大连接数
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"` // 打开到数据库的最大连接数
LogMode string `mapstructure:"log-mode" json:"logMode" yaml:"log-mode"` // 是否开启Gorm全局日志
}
func (m *Mysql) dsn() string {
return m.Username + ":" + m.Password + "@tcp(" + m.Path + ":" + m.Port + ")/" + m.Dbname + "?" + m.Config
}
// 初始化数据库连接
func (m *Mysql) GenConnect(gromConfig *gorm.Config) (db *gorm.DB, sqldb *sql.DB) {
if m.Dbname == "" {
panic(errors.New("无法创建连接"))
}
mysqlConfig := mysqldriver.Config{
DSN: m.dsn(), // DSN data source name
DefaultStringSize: 191, // string 类型字段的默认长度
SkipInitializeWithVersion: false, // 根据版本自动配置
}
logger.Debug("准备创建mysql连接:%v\n", mysqlConfig)
db, err := gorm.Open(mysqldriver.New(mysqlConfig), gromConfig)
logger.PanicIfErr(err)
sqldb, err = db.DB()
logger.PanicIfErr(err)
err = sqldb.Ping()
logger.PanicIfErr(err)
sqldb.SetMaxIdleConns(m.MaxIdleConns)
sqldb.SetMaxOpenConns(m.MaxOpenConns)
return db, sqldb
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/chenhonghua/ginorigin.git
git@gitee.com:chenhonghua/ginorigin.git
chenhonghua
ginorigin
ginorigin
v0.1.6

搜索帮助

Cb406eda 1850385 E526c682 1850385