加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

GOLANG BEEGO ORM

发布时间:2020-12-16 19:13:11 所属栏目:大数据 来源:网络整理
导读:GOLANG BEEGO ORM 每种语言一旦开始步入生产环节都不可避免对数据库操作,ORM 为业务逻辑与底层数据库操作建立起一座桥梁,使得业务对象能直接映射到数据库对象上,减少了数据库的误操作,同时也使得业务代码更加清晰。语言一旦开始成熟,都会有相应的 ORM

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()
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读