Documentation ¶
Overview ¶
* Package mysql of gorm library. * gorm mysql封装,支持多个数据库实例化为连接池对象 * 结合了xorm思想,将每个数据库对象作为一个数据库引擎句柄 * xorm设计思想:在xorm里面,可以同时存在多个Orm引擎 * 一个Orm引擎称为Engine,一个Engine一般只对应一个数据库 * 因此,可以将gorm的每个数据库连接句柄,可以作为一个Engine来进行处理 * 容易踩坑的地方: * 对于golang的官方sql引擎,sql.open并非立即连接db,用的时候才会真正的建立连接 * 但是gorm.Open在设置完db对象后,还发送了一个Ping操作,判断连接是否连接上去 * 对于短连接的话,建议用完就调用db.Close()方法释放db连接资源 * 对于长连接服务,一般建议在main/init中关闭连接就可以 * 具体可以看gorm/main.go源码85行 * 对于gorm实现读写分离: * 可以实例化master,slaves实例,对于curd用不同的句柄就可以
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DbConf ¶
type DbConf struct { Ip string Port int // 默认3306 User string Password string Database string Charset string // 字符集 utf8mb4 支持表情符号 Collation string // 整理字符集 utf8mb4_unicode_ci UsePool bool // 当前db实例是否采用db连接池,默认不采用,如采用请求配置该参数 MaxIdleConns int // 空闲pool个数 MaxOpenConns int // 最大open connection个数 // sets the maximum amount of time a connection may be reused. // 设置连接可以重用的最大时间 // 给db设置一个超时时间,时间小于数据库的超时时间 MaxLifetime int64 // 数据库超时时间,单位s // 连接超时/读取超时/写入超时设置 Timeout time.Duration // Dial timeout ReadTimeout time.Duration // I/O read timeout WriteTimeout time.Duration // I/O write timeout ParseTime bool // 格式化时间类型 Loc string // 时区字符串 Local,PRC ShowSql bool // sql语句是否输出 Logger gorm.LogWriter // sql输出logger句柄接口 // contains filtered or unexported fields }
DbConf mysql连接信息 parseTime=true changes the output type of DATE and DATETIME values to time.Time instead of []byte / string The date or datetime like 0000-00-00 00:00:00 is converted into zero value of time.Time.
func (*DbConf) SetEngineName ¶
SetEngineName 给当前数据库指定engineName
func (*DbConf) ShortConnect ¶
ShortConnect 建立短连接,用完需要调用Close()进行关闭连接,释放资源 否则就会出现too many connection