码迷,mamicode.com
首页 > 其他好文 > 详细

beego框架之orm模块

时间:2015-06-30 14:47:51      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:

  参考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表

技术分享        技术分享

beego框架之orm模块

标签:

原文地址:http://www.cnblogs.com/hezhixiong/p/4610234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!