beego架構之orm模組

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

  參考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 modelsimport (    "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 mainimport (    "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表

        

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.