mdb/mdb.go
2024-06-26 18:37:58 +08:00

42 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}