美文网首页Spring Boot
Springboot 2整合PageHelper实现分页

Springboot 2整合PageHelper实现分页

作者: 海边的小溪鱼 | 来源:发表于2019-01-04 22:53 被阅读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官方文档

    相关文章

      网友评论

        本文标题:Springboot 2整合PageHelper实现分页

        本文链接:https://www.haomeiwen.com/subject/gcqlrqtx.html