数据库分页开源技术包--------------mybatis pager的使用

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语句的错误
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41166135/article/details/81328438