多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 安装orm及Msql驱动 ~~~ go get github.com/astaxie/beego/orm go get github.com/go-sql-driver/mysql // import your used driver ~~~ # 注册数据库类型 ``` orm.RegisterDriver("mysql", orm.DRMySQL) ``` # 连接Msql数据库 ~~~ orm.RegisterDataBase("default", "mysql", "root:root@orm_test?charset=utf8") ~~~ default为数据库别名,这是不能更改的。如果有多个数据库,除第一个外的可以取其他名字。 `用户名:密码@tcp(127.0.0.1:3306)/database_name?charset=utf8` #### RegisterDriver 三种默认数据库类型 ~~~ // For version 1.6 orm.DRMySQL orm.DRSqlite orm.DRPostgres // < 1.6 orm.DR_MySQL orm.DR_Sqlite orm.DR_Postgres ~~~ ~~~ // 参数1 driverName // 参数2 数据库类型 // 这个用来设置 driverName 对应的数据库类型 // mysql / sqlite3 / postgres 这三种是默认已经注册过的,所以可以无需设置 orm.RegisterDriver("mysql", orm.DRMySQL) ~~~ #### RegisterDataBase ORM 必须注册一个别名为`default`的数据库,作为默认使用。 ORM 使用 golang 自己的连接池 ~~~ // 参数1 数据库的别名,用来在 ORM 中切换数据库使用 // 参数2 driverName // 参数3 对应的链接字符串 orm.RegisterDataBase("default", "mysql", "root:root@/orm_test?charset=utf8") // 参数4(可选) 设置最大空闲连接 // 参数5(可选) 设置最大数据库连接 (go >= 1.2) maxIdle := 30 maxConn := 30 orm.RegisterDataBase("default", "mysql", "root:root@/orm_test?charset=utf8", maxIdle, maxConn) ~~~ #### SetMaxIdleConns 根据数据库的别名,设置数据库的最大空闲连接 ~~~ orm.SetMaxIdleConns("default", 30) ~~~ #### SetMaxOpenConns 根据数据库的别名,设置数据库的最大数据库连接 (go >= 1.2) ~~~ orm.SetMaxOpenConns("default", 30) ~~~ #### 时区设置 ORM 默认使用 time.Local 本地时区 * 作用于 ORM 自动创建的时间 * 从数据库中取回的时间转换成 ORM 本地时间 如果需要的话,你也可以进行更改 ~~~ // 设置为 UTC 时间 orm.DefaultTimeLoc = time.UTC ~~~ ORM 在进行 RegisterDataBase 的同时,会获取数据库使用的时区,然后在 time.Time 类型存取时做相应转换,以匹配时间系统,从而保证时间不会出错。 **注意:** * 鉴于 Sqlite3 的设计,存取默认都为 UTC 时间 * 使用 go-sql-driver 驱动时,请注意参数设置 从某一版本开始,驱动默认使用 UTC 时间,而非本地时间,所以请指定时区参数或者全部以 UTC 时间存取 例如:`root:root@/orm_test?charset=utf8&loc=Asia%2FShanghai` 参见[loc](https://github.com/go-sql-driver/mysql#loc)/[parseTime](https://github.com/go-sql-driver/mysql#parsetime)