通过PageHelper插件,开发者可以不用单独维护分页(和排序),还可以大大减少count查询语句的工作量。
PageHelper中的PageInterceptor拦截器,实现了对SQL加壳进行分页,同时也在这里查询了sql的count总条数。
可以模仿PageInterceptor,实现org.apache.ibatis.plugin.Interceptor,自定义处理过程。
使用方式
1、引入jar包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
2、配置mybatis-config.xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- config params as the following -->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
3、使用
PageHelper.startPage(pageNum, pageSize, orderBy);
list = mapper查询;
total = new PageInfo(list).getTotal();
另一种方式:MyBatis Generator
使用IDEA的插件(better-mybatis-generator),生成常用SQL模板,同样方便。
ProductExample productExample = new ProductExample();
productExample.setOffset(offset);
productExample.setLimit(limit);
return productDao.selectByExample(productExample);