背景
我们在使用mybatis做分页的时候,要么直接sql语句写limit进行分页,这样做是可以的,但是会比较麻烦,需要计算分页数据。现今有很多插件可以帮助我们对数据进行分页,今天介绍下插件PageHelper分页。
第一种配置
依赖:
<!-- Pagehelper分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.5</version> </dependency>
代码:
在application.yml 中配置
#mybatis 分页插件 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql
PageHelper.startPage(page,size)方法一般要放在方法中的首行
PageHelper 只对其后的第一个查询有效
public PageInfo<User> findUserList(Integer page, Integer size) { // PageHelper 只对其后面的第一个查询有效 PageHelper.startPage(page,size); // 执行分页查询 List<User> list1=userMapper.selectUserList(); // 返回结果 PageInfo<User> pageInfo=new PageInfo<User>(list1); return pageInfo; }
对应的userMapper.selectUserList() sql语句:
select * from user
第二种配置
<!-- mybatis分页--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.4</version> </dependency>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml"></property> <property name="typeAliasesPackage" value="com.xxx.xxx.common.model"></property> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 --> <property name="properties"> <value> helperDialect=oracle reasonable=true supportMethodsArguments=true params=count=countSql autoRuntimeDialect=true </value> </property> </bean> </array> </property> <!-- 配置mybatis配置文件的位置 --> <!--<property name="configLocation" value="classpath:mybatis-config.xml"/>--> </bean>