该用户从未签到
|
(1)分页查询
在web项目的三层架构中采用第三方查询插件:mybatis-paginator实现分页查询。
第一步:封装分页查询的条件query,里面包含了分页的对象pageNum和pageSize
第二步:查询时构建一个分页的对象,pageBounds,在pageBounds中包含pageNumber和pageSize
第三步:调用dao层的selectForPage()方法,该方法返回一个List并且强制转化为PageList
第四步:构建一个返回结果(map),里面包含rows属性和total属性
A:在controller层中接收前端发来的请求:
@RequestMapping("list")
@ResponseBody
public Map<String,Object> selectForPage(Query query){
Map<String,Object> result=xService.selectForpage(query);
return result;
}
B:在service层中构建pageBounds
public Map<String, Object> selectForpage(Query query) {
//调用dao层的方法
PageList<SaleChance> resultSelect=xDao.selectForPage(Query,query.buildPageBounds());
//pageinator,得到分页器,通过Paginator 可以得到总页数等值
Paginator paginator=resultSelect.getPaginator();
Map<String,Object> map=new HashMap<>();
map.put("paginator", paginator);
map.put("rows", resultSelect);
map.put("total", paginator.getTotalCount());
return map;
}
//构建的pageBounds
public PageBounds buildPageBounds(){
//校验page和pageSize
if (page==null || page<1) {
page=PAG;
}
if (rows==null || rows<1) {
rows=ROWS;
}
PageBounds pageBounds=new PageBounds(page,rows);
return pageBounds;
}
C:在Dao层中编写对应的查询语句
|
|