mdb/mdb.go

42 lines
1.2 KiB
Go
Raw Normal View History

2024-06-26 10:37:58 +00:00
type Config struct {
Host string `toml:"host"` //数据库名称
Port int `toml:"port"` //数据库名称
Debug bool `toml:"debug"` //调试开关会在日志打印SQL)
Dbname string `toml:"dbname"` //数据库名称
Username string `toml:"username"` //数据库用户名
Password string `toml:"password"` //数据库连接密码
ExtraParameters string `toml:"extra_parameters"` //数据库连接扩展参数
}
type Model struct {
DB *gorm.DB
DbTxStatus DbTxStatus
Redis redis.Conn
RedisPool *redis.Pool
}
func NewModel() *Model {
return NewModelDefault()
}
type DbTxStatus int
const (
DBTX_STATUS_TX_NONE DbTxStatus = 0
DBTX_STATUS_TX_DOING DbTxStatus = 1
DBTX_STATUS_TX_SUCCESS DbTxStatus = 2
DBTX_STATUS_TX_FAILED DbTxStatus = 3
)
func (m *Model) Close() {
if m.Redis != nil {
m.Redis.Close()
}
if m.DB == nil {
m.DbTxStatus = DBTX_STATUS_TX_NONE
} else if m.DbTxStatus == DBTX_STATUS_TX_DOING {
m.DB.Rollback()
m.DbTxStatus = DBTX_STATUS_TX_FAILED
}
}