beego框架中orm的使用


//包主要

//

//导入(

//_“myproject/routers"

//?github.com/astaxie/beego"

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

//癴mt"

//)

//

//函数主要(){

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

//beego.Run ()

//}

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


包主要


import (

_“myproject/routers"

“;github.com/astaxie/beego"

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

“fmt"

)


类型用户结构{

Id int

名称字符串的orm:“大小(100)“”

}


类型文章结构{

Id int的orm:“auto"

标题字符串的orm:“大小(100)“”

用户*用户的orm:“rel(颗)“;”

}


func init () {

//设置默认确保

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


//

orm.RegisterModel注册模型(新(用户))


//创建表

orm.RunSyncdb (“default",假的,真的)

}


函数主要(){

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

//五调试查询日志

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

//(orm) - 2013-08-09 13:18:16[查询/违约]- [,,db。执行/,,,0.4]的女士;,(插入“用户”(“名字”)值(?))——“slene”

orm。Debug=true


o:=orm.NewOrm ()

用户:用户={名称:“slence"}


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

//

插入id,犯错:=o.Insert(和用户)

fmt.Printf (“id: % d,犯错:% v \ n", id,犯错)


//更新用户。Name=癮staxie"

num,犯错:=o.Update(和用户)

fmt.Printf (“num: % d,犯错:% v \ n", num,犯错)


//读取一个

u:={Id:用户。Id}

呃=o.Read (, u)

fmt.Printf(“错误:% v \ n",犯错)


//删除

num,呃=o.Delete (, u)

fmt.Printf (“num: % d,犯错:% v \ n", num,犯错)


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

var文章[]*文章

qs:=o.QueryTable (“post")

num,呃=qs.Filter (“User_name",“slence")所有(及职位)//不用:=是因为上面意见有num了,此处仅仅是修改

fmt.Printf (“num: % d,犯错:% v \ n", num,犯错)


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

var地图[]orm。参数

num,呃=o.Raw (“SELECT * FROM user") . values(和地图)

fmt.Printf (“num: % d,犯错:% v \ n", num,犯错)

_

,术语:=范围地图{

fmt.Println(术语“id",“:“,术语[“name"])

}


//四,事务的处理

//o。

//开始....

//o:=NewOrm ()

//用户:用户={名称:“slence"}

//id,犯错:=o.Insert(和用户)

//如果犯错==nil {

//o.Commit ()

//}其他{

//o.Rollback ()

//}


beego.Run ()

}



beego框架中orm的使用