普通项目实现分页插件

144 阅读1分钟

MyBatis 分页插件 - PageHelper

分页插件不支持嵌套结果映射

1. 引入分页插件

如果你使用 Maven,你只需要在 pom.xml 中添加下面的依赖:

<dependency>    <groupId>com.github.pagehelper</groupId>    <artifactId>pagehelper</artifactId>    <version>最新版本</version></dependency>

2.配置拦截器插件

特别注意,新版拦截器是 com.github.pagehelper.PageInterceptorcom.github.pagehelper.PageHelper 现在是一个特殊的 dialect 实现类,是分页插件的默认实现类,提供了和以前相同的用法。

a. 在 MyBatis 配置 xml 中配置拦截器插件

<plugins>    <!-- com.github.pagehelper为PageHelper类所在包名 -->    <plugin interceptor="com.github.pagehelper.PageInterceptor">        <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->        <property name="param1" value="value1"/>    </plugin></plugins>

b. 在 Spring 配置文件中配置拦截器插件

使用 spring 的属性配置方式,可以使用 plugins 属性像下面这样配置:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  <!-- 注意其他配置 -->  <property name="plugins">    <array>      <bean class="com.github.pagehelper.PageInterceptor">        <property name="properties">          <!--使用下面的方式配置参数,一行配置一个 -->          <value>            params=value1          </value>        </property>      </bean>    </array>  </property></bean>

3. 分页插件参数介绍

reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页,

offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为 true 时,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。

4.如何在代码中使用

//第一种,Mapper接口方式的调用,推荐这种使用方式。PageHelper.startPage(1, 10);List<User> list = userMapper.selectIf(1);//第二种 jdk8 lambda用法Page<User> page = PageHelper.startPage(1, 10).doSelectPage(()-> userMapper.selectGroupBy());