如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。
PageHelper是一个Mybatis的分页插件, 负责将已经写好的sql语句, 进行分页加工.
优点 : 无需你自己去封装以及关心sql分页等问题,使用很方便,前端取数据也很方便。
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2<ersion> </dependency>
在spring的 sqlsessionfactory
的 bean
中增加一个分页拦截器属性
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <value> <!-- 这里设定你的数据库类型 --> helperDialect=mysql </value> </property> </bean> </array> </property> </bean>
在service方法中调用PageHelper的静态方法 startPage
(注意 一定要在实际查询数据库之前调用该方法 ),传入需要查询的页号和每页大小,返回PageHelper插件提供的PageInfo对象。即可自动完成数据库物理分页,无须在你的sql语句中手工加 limit
子句
关于PageInfo的结构请参看源码,这里通过返回的json来展示。根据需要取PageInfo对象的相应属性即可。