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字符串
前台界面返回的数据
如果需要配置拦截器插件的参数,可以参考: