一对多查询 使用pagehelper分页
时间: 2023-07-20 17:33:49 浏览: 171
一对多查询的分页可以使用PageHelper插件来实现,具体步骤如下:
1.在查询方法中使用PageHelper.startPage(pageNum, pageSize)来启动分页,pageNum是页码,pageSize是每页显示的记录数。
2.在查询语句中使用LEFT JOIN关联两个表,例如:
```
SELECT a.*, b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id = b.a_id
WHERE ...
```
3.将查询结果组装成你需要的数据结构,例如:
```
public class A {
private Long id;
private String name;
private List<B> bList;
// getter, setter
}
public class B {
private Long id;
private String name;
private Long aId;
// getter, setter
}
```
4.在MyBatis的配置文件中配置resultMap,例如:
```
<resultMap id="aResultMap" type="A">
<id property="id" column="a_id"/>
<result property="name" column="a_name"/>
<collection property="bList" ofType="B">
<id property="id" column="b_id"/>
<result property="name" column="b_name"/>
<result property="aId" column="b_a_id"/>
</collection>
</resultMap>
```
5.在查询方法中使用PageInfo来对查询结果进行分页,例如:
```
PageHelper.startPage(pageNum, pageSize);
List<A> aList = aMapper.selectList();
PageInfo<A> aPageInfo = new PageInfo<>(aList);
```
6.最后将分页结果返回给前端即可,例如:
```
Map<String, Object> result = new HashMap<>();
result.put("list", aPageInfo.getList());
result.put("total", aPageInfo.getTotal());
result.put("pageNum", aPageInfo.getPageNum());
result.put("pageSize", aPageInfo.getPageSize());
```
希望这些步骤能够帮助您实现一对多查询的分页。
阅读全文