今日下班之际记录一下mybatis分页插件实现插件希望能帮到大家也同时作为记录!
1、第一步首先要导包:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.4</version>
</dependency>
2、添加配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "classpath:mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25000"/>
<!-- 链路监控慢sql超时时间 -->
<setting name="slowSqlTimeout" value="1000"/>
<!-- 配置此项时,logback设置为debug时可以查看sql语句 -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- 分页插件 end-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<property name="offsetAsPageNum" value="false"/>
<property name="rowBoundsWithCount" value="false"/>
<property name="pageSizeZero" value="true"/>
<property name="reasonable" value="false"/>
<property name="supportMethodsArguments" value="false"/>
<property name="returnPageInfo" value="none"/>
</plugin>
</plugins>
</configuration>
3、使用(注意就是在service调用dao层之前调用插件方法就行了)
//进行分页
com.github.pagehelper.Page pageHelper = PageHelper.startPage(pageRequest.getPage(), pageRequest.getSize());
log.info("HisPriceManagerImpl:调用hisPriceDao的findDataByPage方法查询历史价格信息,请求参数:map:{}", hashMap);
List<HisPriceIquyDtlDO> list = hisPriceDao.findDataByPage(hashMap);
注意:
- 使用此插件不需要自己再也查询总数了,以前自己总要写两个sql语句一个先查询总数第二页再查数据相当麻烦,此插件执行完里面有总数直接使用get获取就好了。
- 该插件的配置只是上面配置文件的下半部分我已标出,你要了解一下各个属性哦!