• Find方法

    Find方法

    查询多条数据使用Find方法,Find方法的第一个参数为slice的指针或Map指针,即为查询后返回的结果,第二个参数可选,为查询的条件struct的指针。

    1) 传入Slice用于返回数据

    1. everyone := make([]Userinfo, 0)
    2. err := engine.Find(&everyone)
    3. pEveryOne := make([]*Userinfo, 0)
    4. err := engine.Find(&pEveryOne)

    2) 传入Map用户返回数据,map必须为map[int64]Userinfo的形式,map的key为id,因此对于复合主键无法使用这种方式。

    1. users := make(map[int64]Userinfo)
    2. err := engine.Find(&users)
    3. pUsers := make(map[int64]*Userinfo)
    4. err := engine.Find(&pUsers)

    3) 也可以加入各种条件

    1. users := make([]Userinfo, 0)
    2. err := engine.Where("age > ? or name = ?", 30, "xlw").Limit(20, 10).Find(&users)

    4) 如果只选择单个字段,也可使用非结构体的Slice

    1. var ints []int64
    2. err := engine.Table("user").Cols("id").Find(&ints)