beego ORM 使用 已支持数据库驱动: ~~~ MySQL:github.com/go-sql-driver/mysql PostgreSQL:github.com/lib/pq Sqlite3:github.com/mattn/go-sqlite3 ~~~ 安装 ORM: ~~~ go get github.com/astaxie/beego/orm ~~~ 链接数据库 ~~~ package main import ( "fmt" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" ) func main() { // 链接数据库 err := orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8") // orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8") // 参数1 数据库的别名,用来在 ORM 中切换数据库使用 // 参数2 mysql // 参数3 对应的链接字符串 "账号:密码@tcp(ip:端口)/数据库" if err != nil { fmt.Println("connect mysql err : ", err) } else { fmt.Println("connect mysql success") } } ~~~ ORM 使用 golang 自己的连接池 ~~~ package main import ( "fmt" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" ) func main() { // 链接数据库连接池 maxIdle := 30 maxConn := 30 err := orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8", maxIdle, maxConn) // orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8", maxIdle, maxConn) // 参数1 数据库的别名,用来在 ORM 中切换数据库使用 // 参数2 mysql // 参数3 对应的链接字符串 "账号:密码@tcp(ip:端口)/数据库" // 参数4(可选) 设置最大空闲连接 // 参数5(可选) 设置最大数据库连接 (go >= 1.2) if err != nil { fmt.Println("connect mysql err : ", err) } else { fmt.Println("connect mysql success") } } ~~~ 根据数据库的别名,设置数据库的最大空闲连接 orm.SetMaxIdleConns("default", 30) 根据数据库的别名,设置数据库的最大数据库连接 (go >= 1.2) orm.SetMaxOpenConns("default", 30) 时区设置 ORM 默认使用 time.Local 本地时区 作用于 ORM 自动创建的时间 从数据库中取回的时间转换成 ORM 本地时间 如果需要的话,你也可以进行更改 // 设置为 UTC 时间 orm.DefaultTimeLoc = time.UTC ORM 在进行 RegisterDataBase 的同时,会获取数据库使用的时区,然后在 time.Time 类型存取时做相应转换,以匹配时间系统,从而保证时间不会出错。 Using 切换为其他数据库 ~~~ orm.RegisterDataBase("db1", "mysql", "root:root@/orm_db2?charset=utf8") orm.RegisterDataBase("db2", "sqlite3", "data.db") o1 := orm.NewOrm() o1.Using("db1") o2 := orm.NewOrm() o2.Using("db2") // 切换为其他数据库以后 // 这个 Ormer 对象的其下的 api 调用都将使用这个数据库 默认使用 default 数据库,无需调用 Using ~~~