分享
  1. 首页
  2. 文章

beego框架之orm模块

hezhixiong · · 17166 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

参考beego原文:http://beego.me/docs/mvc/model/orm.md#main.go

beego ORM 是一个强大的 Go 语言 ORM 框架,orm模块主要是处理MVC中的M(models)。

首先以bee工具创建一工程名为:beegoorm,修改的文件为 beegoorm/main.go 和 beegoorm/models/models.go(仅2个文件)

beegoorm/models/models.go

package models
import (
 "github.com/astaxie/beego/orm"
)
type User struct {
 Id int
 Name string
 Profile *Profile `orm:"rel(one)"` // OneToOne relation
}
type Profile struct {
 Id int
 Age int16
 User *User `orm:"reverse(one)"` // 设置反向关系(可选)
}
func init() {
 // 需要在 init 中注册定义的 model
 orm.RegisterModel(new(User), new(Profile))
}

beegoorm/main.go

package main
import (
 "beegoorm/models"
 "fmt"
 "github.com/astaxie/beego"
 "github.com/astaxie/beego/orm"
 _ "beegoorm/routers"
 _ "github.com/go-sql-driver/mysql"
)
func init() {
 // 注册驱动
 orm.RegisterDriver("mysql", orm.DR_MySQL)
 // 注册默认数据库
 // 我的mysql的root用户密码为tom,打算把数据表建立在名为test数据库里
 // 备注:此处第一个参数必须设置为"default"(因为我现在只有一个数据库),否则编译报错说:必须有一个注册DB的别名为 default
 orm.RegisterDataBase("default", "mysql", "root:tom@/test?charset=utf8")
}
func main() {
 // 开启 orm 调试模式:开发过程中建议打开,release时需要关闭
 orm.Debug = true
 // 自动建表
 orm.RunSyncdb("default", false, true)
 // 创建一个 ormer 对象
 o := orm.NewOrm()
 o.Using("default")
 perfile := new(models.Profile)
 perfile.Age = 30
 user := new(models.User)
 user.Name = "tom"
 user.Profile = perfile
 // insert
 o.Insert(perfile)
 o.Insert(user)
 o.Insert(perfile)
 o.Insert(user)
 o.Insert(perfile)
 o.Insert(user)
 // update
 user.Name = "hezhixiong"
 num, err := o.Update(user)
 fmt.Printf("NUM: %d, ERR: %v\n", num, err)
 // delete
 o.Delete(&models.User{Id: 2})
 beego.Run()
}

数据库建表及数据增删改的结果如下:
数据库名:test
数据表:user,profile
user表 profile表


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:hezhixiong

查看原文:beego框架之orm模块

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
17166 次点击 ∙ 1 赞
5 回复 | 直到 2000年01月01日 00:00:00
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏