beego框架长连接mysql_beego框架中orm的使用

//package main

//

//import (

//_ "myproject/routers"

//"github.com/astaxie/beego"

//"github.com/astaxie/beego/orm"

//"fmt"

//)

//

//func main() {

beego.SetStaticPath("/down1","download1") ,自定义设置多个静态文件处理目录

//beego.Run()

//}

// 上面是入门的案例, 下面是beego框架中orm的使用

package main

import (

_ "myproject/routers"

"github.com/astaxie/beego"

"github.com/astaxie/beego/orm"

"fmt"

)

type User struct{

Id int

Name string `orm:"size(100)"`

}

type Post struct{

Id int `orm:"auto"`

Title string `orm:"size(100)"`

User *User `orm:"rel(fk)"`

}

func init(){

// set default dabase

orm.RegisterDataBase("default","mysql", "root:mysql@tcp(127.0.0.1)/golang_db01?charset=utf8", 30)

//register model

orm.RegisterModel(new(User))

//创建table

orm.RunSyncdb("default", false, true)

}

func main() {

//beego.SetStaticPath("/down1","download1") ,自定义设置多个静态文件处理目录

// 五,调试查询日志

//开发环境中,输出日志

// [ORM] - 2013-08-09 13:18:16 - [Queries/default] - [    db.Exec /     0.4ms] -   [INSERT INTO `user` (`name`) VALUES (?)] - `slene`

orm.Debug = true

o := orm.NewOrm()

user := User{Name:"slence"}

//一,通过orm进行增删改查

//insert

id, err := o.Insert(&user)

fmt.Printf("ID:%d, ERR: %v\n", id, err)

//update

user.Name = "astaxie"

num, err := o.Update(&user)

fmt.Printf("NUM:%d, ERR:%v\n", num, err)

//read one

u := User{Id:user.Id}

err = o.Read(&u)

fmt.Printf("ERR:%v\n", err)

//delete

num, err = o.Delete(&u)

fmt.Printf("NUM:%d, ERR:%v\n", num, err)

// 二,关联查询,主要还是在于Post的结构体中User字段定义了外键关联

var posts []*Post

qs := o.QueryTable("post")

num, err = qs.Filter("User_name", "slence").All(&posts)//不用:=是因为上面意见有num了,此处仅仅是修改

fmt.Printf("NUM:%d, ERR:%v\n", num, err)

// 三,使用原生的SQL语句进行查询

var maps []orm.Params

num, err= o.Raw("SELECT * FROM user").Values(&maps)

fmt.Printf("NUM:%d, ERR:%v\n", num, err)

for _, term := range maps{

fmt.Println(term["id"], ":", term["name"])

}

//四,事务的处理

//o.Begin

//。。。。

//o := NewOrm()

//user := User{Name:"slence"}

//id, err := o.Insert(&user)

//if err == nil{

//o.Commit()

//}else{

//o.Rollback()

//}

beego.Run()

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值