<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
helperDialect 表示数据库类型,用于分析目标SQL并生成统计页数SQL
虽然PageHelper 支持自动识别数据库类型,但某些情况存在BUG,
建议最好配置一下
在 MyBatis 配置文件中配置分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
<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>
Spring Boot 引入 Starter 后默认已经配置PageInterceptor,可以通过配置文件修改其属性,如:
pagehelper.helper-dialect = mysql
通过PageHelper.startPage()
方法设置页码和每页记录数,后面紧跟的第一次查询被分页
PageHelper.startPage(1, 10);
List<User> list = userMapper.list();
PageInfo page = new PageInfo(list);
page.getTotal();
pagehelper.helper-dialect = mysql
pagehelper.support-methods-arguments = true
pagehelper.params = pageNum=pageNum;pageSize=pageSize;
上面的配置表示,当参数中同时存在参数名为pageNum
和pageSize
的参数时,方法分页,如:
// 两个方法都可以分页
public interface user {
List<User> list(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
List<User> list(PageParam param);
}
@Data
public class PageParam {
private int pageNum;
private int pageSize
}
5.0.4手写COUNT语句支持 https://segmentfault.com/q/1010000013444285