GOLANG BEEGO ORM
每种语言一旦开始步入生产环节都不可避免对数据库操作,ORM 为业务逻辑与底层数据库操作建立起一座桥梁,使得业务对象能直接映射到数据库对象上,减少了数据库的误操作,同时也使得业务代码更加清晰。语言一旦开始成熟,都会有相应的 ORM 框架出现,这些框架大部分都是语言的第三方库。如同 JAVA 的 Hibernate、Mybatis,C#的 LINQ 等,GO语言也有一些 ORM 框架,这里根据个人使用经历对 BEEGO 的 ORM 框架从代码层面进行一个简单说明。
基本用法
依赖库
import "github.com/astaxie/beego/orm" import _ "github.com/go-sql-driver/MysqL"
映射对象定义
type User struct { Id int `orm:"pk;auto"` Name string Age int Date time.Time }
其中使用标注对主键进行声明,这里其实不声明也行,因为该框架默认使用Id作为主键
初始化
orm.RegisterModel(new(User)) //注册表
orm.RegisterDriver("MysqL",orm.DRMysqL) //注册数据库驱动,这里用的MysqL
orm.RegisterDataBase("default","MysqL","xxx:xxx@/xxx?charset=utf8") //注册数据库
orm.RunSyncdb("default",false,true) //同步数据库,如果表不存在会自动创建
orm.Debug = true //是否输出调试信息
- CURD
这里就插入数据操作进行说明,其他类似
t := orm.NewOrm()
t.Using("default")
user := &User{Name: "hello",Age: 10,Date: time.Now()}
t.Begin()
_,err := t.Insert(user)
if err != nil {
fmt.Println(err)
t.Rollback()
} else {
t.Commit()
}