Mybatis的分页插件PageHelper的使用

  对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select。PageHelper插件可以帮助我们实现对分页的功能,只需要写一个查询语句就可以了。

原理:利用mybatis拦截器,在查询数据库的时候,拦截下SQL,然后进行修改,从而实现分页。

针对Maven项目,SSM框架

  第一步:添加依赖

     <!-- pageHelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>

在IDEA中查看jar包依赖

  

发现它依赖了jsqlparser.jar

  如果是web项目需要将这两个jar包都导进来:

      

2、在Spring配置文件中配置拦截器插件  

 <!--sqlSessionFactory的配置-->
          <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              
              <!--加载mybatis的核心配置文件 文件路径-->
              <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
              
              <!--数据源-->
              <property name="dataSource" ref="dataSource"/>    
              <!-- 配置mybatis分页插件PageHelper -->                
                <property name="plugins">
                    <array>
                        <bean class="com.github.pagehelper.PageInterceptor">
                            <property name="properties">
                                <!-- 使用默认配置 -->                             
                                <value>                                    
                                </value>
                            </property>
                        </bean>
                    </array>
                </property>
          </bean>    

3、使用插件进行分页处理

  Mapper.xml文件中不需要写分页方法

  

  Mapper接口

  

  在service层调用mapper方法实现分页

  

  在controller层调用service方法后返回json字符串

  

  前台界面返回的数据

  

 如果需要配置拦截器插件的参数,可以参考:

  https://blog.csdn.net/chenjunfengf/article/details/76785442

原文地址:https://www.cnblogs.com/leilong/p/8722988.html