Fix some err and delete some
This commit is contained in:
56
zh/05.5.md
56
zh/05.5.md
@@ -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已经获得了很多来自国内外用户的反馈,我目前也正在考虑支持更多数据库,接下来会在更多方面进行改进
|
||||
|
||||
|
||||
Reference in New Issue
Block a user