Springboot 2整合PageHelper实现分页
2019-01-04 本文已影响403人
海边的小溪鱼
引言
在之前搭建好的Springboot 2.x+Mybatis+Druid+Thymeleaf+Swagger框架基础上
进行个人毕设开发时,在前台数据展示的时候,需要对数据分页展示,使用Mybatis-PageHelper插件。
环境
开发工具 :IDEA 2018
SpingBoot : 2.1M
Mybatis :3.4
Mysql : 8.0
整合PageHelper到项目
1. pom.xml
添加如下依赖
<!-- pagehelper分页插件依赖 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2.配置文件application.yml
中添加:
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countsql
到这里配置就完成了,在Springboot中整合就是这么简洁,约定大约配置的方式,大量的减少了配置文件的使用
配置参数说明
属性 | 作用 | 说明 |
---|---|---|
helperDialect | 指定数据库 | 可以不配置,插件会自动检测数据库的类型 |
reasonable | 分页合理化参数,默认值为false | 当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。 |
params | 用于从对象中根据属性名取值 | 可以配置pageNum,pageSize,count,pageSizeZero,reasonable。不配置映射的用默认值。 |
supportMethodsArguments | 默认值false | 分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 |
pageHelper使用
- Kind.class
public class Kind {
private String kindCode;
private String name;
private String info;
private Date date;
private byte[] via;
//省略set()和get()方法
}
- service层
/**
* 查找所有的Kind数据
* */
@Service
public class KindServiceImpl implements KindService {
@Autowired
private KindMapper kindMapper;
@Override
public List<Kind> selectAllKind() {
return kindMapper.selectAllKind();
}
}
- Controller层
@GetMapping(value = "airKind")
@ApiOperation(value = "Air Kind",notes = "气体分类")
public String airKind(Model model){
int pageNum=1;//第几页
int pageSize=10;//每页数据条数
Page<Kind> page = PageHelper.startPage(pageNum, pageSize);
List<Kind> listKind = kindService.selectAllKind();//从数据库中查出所有数据
System.out.println("总共条数:"+page.getTotal());
for (Kind kind : page.getResult()) {
System.out.println(kind.getName());
}
model.addAttribute("kinds",listKind);
return "knowAir/airKind";
}
- 模板airKind.html展示分页(关键代码)
<table class="table table-striped">
<thead>
<tr>
<th>分类编码</th>
<th>名称</th>
<th>时间</th>
<th>详情</th>
</tr>
</thead>
<tbody>
<tr th:each="kind:${kinds}">
<td th:text="${kind.kindCode}"></td>
<td th:text="${kind.name}"></td>
<td th:text="${kind.date}"></td>
<td >详情</td>
</tr>
</tbody>
</table>
-
浏览器访问
-
后台测试输出
至此分页插件配置success。
- 更多使用请参考