现在的位置: 首页 > 综合 > 正文

go语言之beego框架orm的使用(二)

2017年12月21日 ⁄ 综合 ⁄ 共 1178字 ⁄ 字号 评论关闭

package main

import (
    "fmt"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)
type User struct {
    Id         int `orm:"auto"`
    Name       string
    Profile_id int
}
func init() {
    orm.RegisterModel(new(User))
    orm.RegisterDataBase("default", "mysql", "ta3:ta3@/ta3?charset=utf8")
    orm.RunSyncdb("default", false, true)
}
func main() {
    var (
        sSql string
        err  error
    )
    var users []User
    orm.Debug = true //打开查询日志
    o := orm.NewOrm()
    o.Using("default") // 默认使用 default,你可以指定为其他数据库
    //查询 以于大数据量不知道性能怎样?
    sSql = "SELECT Id, Name FROM User "
    num, err := o.Raw(sSql).QueryRows(&users)
    if err == nil && num > 0 {
        for i, _ := range users {
            fmt.Println(users[i].Name)
        }
    }
    //执行更新
    sSql = "update User set name='aaa' where Id= 1"
    _, err = o.Raw(sSql).Exec()
    if err != nil {
        fmt.Println("更新出错")
    }
    //事务
    err = o.Begin()
    sSql = " insert into User (Id, Name, Profile_id) values(3, 'bbbb',9) "
    _, err = o.Raw(sSql).Exec()
    if err != nil {
        o.Rollback()
    } else {
        o.Commit()
    }
    //以下这种用法可以适应全部的SQL写法
    sSql = fmt.Sprintf("insert into User (Id, Name, Profile_id) values(4, 'bbbb',%d)", 10)
    _, err = o.Raw(sSql).Exec()
    if err != nil {
        fmt.Println("插入出错")
    }
}

抱歉!评论已关闭.