go语言之beego框架orm的使用(二)
package mainimport ( "fmt" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql")func init() { //orm.RegisterModel(new(User)) orm.RegisterDataBase("def
·
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("插入出错")
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)