Orm
ORM 的例子在这里
Beego 的 ORM 被设计成为两种:
- 普通的
Orm实例:这种实例是无状态的,因此你应该尽可能保持一个数据库只有一个实例。当然,即便每次你都创建新的实例,问题也不大,只是没有必要而已; TxOrm:这是启动事务之后得到的Orm对象,它只能被用于事务内,提交或者回滚之后就要丢弃,不能复用。每一个事务都需要创建一个新的实例;
快速开始
这是一个最简单的 ORM 例子:
import ("github.com/beego/beego/v2/client/orm"// don't forget this_ "github.com/go-sql-driver/mysql")// User -type User struct {ID int `orm:"column(id)"`Name string `orm:"column(name)"`}func init() {// need to register models in initorm.RegisterModel(new(User))// need to register default databaseorm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/beego?charset=utf8")}func main() {// automatically build tableorm.RunSyncdb("default", false, true)// create orm objecto := orm.NewOrm()// datauser := new(User)user.Name = "mike"// insert datao.Insert(user)}
总体来说,可以分成以下几步:
需要注意的是,一定要根据自己使用的数据库来匿名引入驱动,例如引入 "github.com/go-sql-driver/mysql"
调试查询日志
在开发环境下,可以设置输出 DEBUG 的 SQL 语句:
func main() {orm.Debug = true
开启后将会输出所有查询语句,包括执行、准备、事务等。注意,在生产环境不应该开启这个选项,因为输出日志会严重影响性能。