1 Star 1 Fork 0

kade / library

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
gorm.go 2.05 KB
一键复制 编辑 原始数据 按行查看 历史
kade 提交于 2024-03-21 23:09 . 补充ioc server run
package datasource
import (
"context"
"fmt"
"gitee.com/go-kade/library/ioc"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func init() {
ioc.Config().Registry(&dataSource{
Host: "35.220.136.110",
Port: 3307,
DB: "sso",
Username: "root",
Password: "cys000522",
Debug: false,
EnableTrace: true,
})
}
type dataSource struct {
// Provider PROVIDER `json:"provider" yaml:"provider" toml:"provider" env:"DATASOURCE_PROVIDER"`
Host string `json:"host" yaml:"host" toml:"host" env:"DATASOURCE_HOST"`
Port int `json:"port" yaml:"port" toml:"port" env:"DATASOURCE_PORT"`
DB string `json:"database" yaml:"database" toml:"database" env:"DATASOURCE_DB"`
Username string `json:"username" yaml:"username" toml:"username" env:"DATASOURCE_USERNAME"`
Password string `json:"password" yaml:"password" toml:"password" env:"DATASOURCE_PASSWORD"`
Debug bool `json:"debug" yaml:"debug" toml:"debug" env:"DATASOURCE_DEBUG"`
EnableTrace bool `toml:"enable_trace" json:"enable_trace" yaml:"enable_trace" env:"DATASOURCE_ENABLE_TRACE"`
db *gorm.DB
ioc.ObjectImpl
}
//toml,配置的名字datasource
func (m *dataSource) Name() string {
return AppName
}
func (m *dataSource) Init() error {
db, err := gorm.Open(mysql.Open(m.DSN()), &gorm.Config{})
if err != nil {
return err
}
if m.Debug {
db = db.Debug()
}
m.db = db
fmt.Println("mysql init succeessful")
return nil
}
func (m *dataSource) DSN() string {
//dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
m.Username,
m.Password,
m.Host,
m.Port,
m.DB,
)
}
// 关闭数据库连接
func (m *dataSource) Close(ctx context.Context) error {
if m.db == nil {
return nil
}
d, err := m.db.DB()
if err != nil {
return err
}
return d.Close()
}
func (i *dataSource) Version() string {
return ""
}
func (i *dataSource) Priority() int {
return 99
}
func (i *dataSource) AllowOverwrite() bool {
return false
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/go-kade/library.git
git@gitee.com:go-kade/library.git
go-kade
library
library
v1.2.7

搜索帮助

344bd9b3 5694891 D2dac590 5694891