Fix some err and delete some

This commit is contained in:
vCaesar
2016-12-27 20:01:56 +08:00
parent 41fab88708
commit b8ef58947c

View File

@@ -160,7 +160,7 @@ func main() {
SetMaxIdleConns
根据数据库的别名,设置数据库的最大空闲连接
``Go
```Go
orm.SetMaxIdleConns("default", 30)
```
@@ -349,26 +349,6 @@ beego orm的查询接口比较灵活具体使用请看下面的例子
qs.Limit(10, 20)
// LIMIT 10 OFFSET 20 注意跟SQL反过来的
```
例子3获取全部数据
```Go
var everyone []User
err := orm.OrderBy("uid desc,username asc").FindAll(&everyone)
```
上面这些里面里面我们看到一个函数Limit他是用来控制查询结构条数的。
Limit:支持两个参数第一个参数表示查询的条数第二个参数表示读取数据的起始位置默认为0。
OrderBy:这个函数用来进行查询排序,参数是需要排序的条件。
上面这些例子都是将获取的的数据直接映射成struct对象如果我们只是想获取一些数据到map以下方式可以实现
```Go
a, _ := orm.SetTable("User").SetPK("uid").Where(2).Select("uid,username").FindMap()
```
上面和这个例子里面又出现了一个新的接口函数Select这个函数用来指定需要查询多少个字段。默认为全部字段`*`。
FindMap()函数返回的是`[]map[string][]byte`类型,所以你需要自己作类型转换。
## 删除数据
beedb提供了丰富的删除数据接口请看下面的例子
@@ -381,29 +361,25 @@ beedb提供了丰富的删除数据接口请看下面的例子
fmt.Println(num)
}
```
例子2删除多条数据
```Go
//alluser就是上面定义的获取多条数据的slice
orm.DeleteAll(&alluser)
```
例子3根据sql删除数据
```Go
orm.SetTable("User").Where("uid>?", 3).DeleteRow()
```
Delete 操作会对反向关系进行操作,此例中 Post 拥有一个到 User 的外键。删除 User 的时候。如果 on_delete 设置为默认的级联操作,将删除对应的 Post
## 关联查询
目前beedb还不支持struct的关联关系但是有些应用却需要用到连接查询所以现在beedb提供了一个简陋的实现方案:
有些应用却需要用到连接查询所以现在beego orm提供了一个简陋的实现方案:
```Go
a, _ := orm.SetTable("User").Join("LEFT", "userdeatail", "User.uid=userdeatail.uid").Where("User.uid=?", 1).Select("User.uid,User.username,userdeatail.profile").FindMap()
```
上面代码中我们看到了一个新的接口Join函数这个函数带有三个参数
type Post struct {
Id int `orm:"auto"`
Title string `orm:"size(100)"`
User *User `orm:"rel(fk)"`
}
var posts []*Post
qs := o.QueryTable("post")
num, err := qs.Filter("User__Name", "slene").All(&posts)
```
上面代码中我们看到了一个struct关联查询
- 第一个参数可以是INNER, LEFT, OUTER, CROSS等
- 第二个参数表示连接的表
- 第三个参数表示连接的条件
## Group By和Having
@@ -457,6 +433,8 @@ func (m *User) Query(name string) []User {
}
```
更多说明,请到[beego.me](https://beego.me)
## 进一步的发展
目前beego orm已经获得了很多来自国内外用户的反馈我目前也正在考虑支持更多数据库接下来会在更多方面进行改进