1.在github上有一个比较好用的用来分页的插件,下面是Maven里面需要的依赖,将其加入到pom里面就可以使用他了
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.4</version>
</dependency>
2.下面是项目中Controller层的代码以及其中需要的参数
/**
* 管理后台关于产品的List
*/
@RequestMapping("list.do")
@ResponseBody
public ServiceResponse getList(HttpSession session, @RequestParam(value = "pageNum",defaultValue = "1") int pageNum,@RequestParam(value = "pageSize",defaultValue = "10") int pageSize) {
User user = (User) session.getAttribute(Const.CURRENT_USER);
if (user == null) {
return ServiceResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(), "用户未登录,请登录管理员");
}
if (iUserService.checkAdminRole(user).isSuccess()) {
//填充业务
return iProductService.getProductList(pageNum, pageSize);
} else {
return ServiceResponse.createByErrorMessage("无权限操作");
}
}
3.下面是ServiceImplement层对其具体的实现
1)开始->PageHelper.startPage(pageNum,pageSize);
2)填充自己的sql查询逻辑
3)pageHelper–收尾
public ServiceResponse getProductList(int pageNum,int pageSize){
PageHelper.startPage(pageNum,pageSize); //startPage--start
//填充自己的sql查询逻辑
List<Product> productList = productMapper.selectList();
List<ProductListVo> productListVoList = Lists.newArrayList();
for (Product productItem:productList
) {
ProductListVo productListVo = assembleProductListVo(productItem);
productListVoList.add(productListVo);
}
//pageHelper--收尾
PageInfo pageRequest = new PageInfo(productList);
pageRequest.setList(productListVoList);
return ServiceResponse.createBySuccess(pageRequest);
}
这个是对其属性的封装:
private ProductListVo assembleProductListVo(Product product){
ProductListVo productListVo = new ProductListVo();
productListVo.setId(product.getId());
productListVo.setName(product.getName());
productListVo.setCategoryId(product.getCategoryId());
productListVo.setImageHost(PropertiesUtil.getProperty(“ftp.server.http.prefix”,”http://img.happymmall.com/“));
productListVo.setMainImage(product.getMainImage());
productListVo.setPrice(product.getPrice());
productListVo.setSubtitle(product.getSubtitle());
productListVo.setStatus(product.getStatus());
return productListVo;
}
4.下面是上边代码需要实现的mapper以及mapper.xml
List<Product> selectList();//mapper.java
//mapper.xml
需要注意的地方:asc排序后面一定不要加分号,因为这个工具会自动在其后面加上limit等属性的参数,到时候会报sql语句的错误