Spring Boot

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使用

  1. Kind.class
public class Kind {
    private String kindCode;

    private String name;

    private String info;

    private Date date;

    private byte[] via;
    //省略set()和get()方法
}
  1. service层
   /**
     * 查找所有的Kind数据
     * */
@Service
public class KindServiceImpl implements KindService {
    @Autowired
    private KindMapper kindMapper;
    @Override
    public List<Kind> selectAllKind() {
        return kindMapper.selectAllKind();
    }
}
  1. 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";
    }
  1. 模板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>
  1. 浏览器访问


  2. 后台测试输出


至此分页插件配置success。

MyBatis 分页插件 PageHelper官方文档

上一篇下一篇

猜你喜欢

热点阅读