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

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

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("插入出错")
    }
}



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

本文来自:CSDN博客

感谢作者:zistxym

查看原文:go语言之beego框架orm的使用(二)

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

2770 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传