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