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("插入出错")
}
}
有疑问加站长微信联系(非本文作者)