Name Last Update
..
CustomFields.md Loading commit data...
Models.md Loading commit data...
Models.sql Loading commit data...
Object.md Loading commit data...
Orm.md Loading commit data...
Query.md Loading commit data...
README.md Loading commit data...

beego orm 介绍

快速入门

package main

import (
    "fmt"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

// 最简单的两个表的定义
type User struct {
    Id   int    `orm:"auto"`
    Name string `orm:"size(100)"`
    orm.Manager
}

type Post struct {
    Id      int    `orm:"auto"`
    User    *User  `orm:"rel(fk)"`
    Title   string `orm:"size(100)"`
    Content string
    orm.Manager
}

func init() {
    // 将表定义注册到 orm 里
    orm.RegisterModel(new(User))
    orm.RegisterModel(new(Post))

    // 链接参数设置
    orm.RegisterDataBase("default", "mysql", "root:root@/my_db?charset=utf8", 30)
}

func main() {
    orm.BootStrap() // 确保在所有 RegisterModel 之后执行

    o := orm.NewOrm()

    var user User
    obj := o.Object(&user)

    // 创建
    user.Name = "slene"
    id, err := obj.Insert()
    fmt.Println(id, err)

    // 更新
    user.Name = "astaxie"
    num, err := obj.Update()
    fmt.Println(num, err)

    // 查询单个
    var u User
    err = o.QueryTable("user").Filter("id", &user).One(&u)
    fmt.Println(u.Id, u.Name, err)

    // 创建 post
    var post Post
    post.Title = "beego orm"
    post.Content = "powerful amazing"
    post.User = &u
    id, err = o.Object(&post).Insert()
    fmt.Println(id, err)

    // 当然,以 map[string]interface{} 形式的数据返回也是允许的
    var maps []orm.Params
    num, err = o.QueryTable("user").Filter("id", &u).Values(&maps)
    fmt.Println(num, err, maps[0])

    // 删除
    num, err = obj.Delete() // 默认,级联删除 user 以及关系存在的 post
    fmt.Println(num, err)
}

详细文档

  1. Model Definition
  2. Custom Fields
  3. Orm
  4. Object
  5. Query
  6. Condition
  7. Raw
  8. Transaction
  9. Faq