关于分页插件的使用其实很简单,只需要导入一下几个配置。
导入依赖PageHelper
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
这个配置是在mybatis的核心配置晚间中配置。(前提是其他的配置文件都已经搭建完成)
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<property name="offsetAsPageNum" value="false"/>
<property name="rowBoundsWithCount" value="false"/>
<property name="pageSizeZero" value="true"/>
<property name="reasonable" value="false"/>
<property name="supportMethodsArguments" value="false"/>
<property name="returnPageInfo" value="none"/>
</plugin>
</plugins>
编写接口,这里我的接口是通过名称模糊查询数据
List<Employee> pageInfo(@Param("lastName") String lastName);
myabtis的sql语句
<select id="pageInfo" resultType="com.springboot.mybatisdemo.bean.Employee">
SELECT * FROM employee where lastName like '%' #{lastName} '%'
</select>
这里我没有使用service,直接在controller中完成的
@RequestMapping("/pages/{lastName}/{currPage}/{pageSize}")
public PageInfo<Employee> lists(@PathVariable("lastName") String lastName, @PathVariable("currPage") int currPage,
@PathVariable("pageSize") int pageSize){
PageHelper.startPage(currPage,pageSize,true);//当前页,每页显示条数
List<Employee> list = employeeMapper.pageInfo(lastName);
PageInfo<Employee> PageInfo = new PageInfo<Employee>(list);//使用插件自动分页
System.out.println(PageInfo.getTotal()+"总页数");
System.out.println(PageInfo.getPageSize()+"每页显示数");
return PageInfo;
}
重点就是PageInfo<T> 它会帮助我们自动的完成分页.
结果
总结
总的来说这种方式的分页确实很简单,抛去了原来JavaEE的一些算法还有判断,简化了编码。