//包主要
//
//导入(
//_“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 ()
}