springboot+pagehelper 完成分页

1.首先要启动类中配置分页bean

@Bean
    public PageHelper pageHelper(){
        //分页插件
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum","true");
        properties.setProperty("rowBoundsWithCount","true");
        properties.setProperty("reasonable","true");
        properties.setProperty("dialect","mysql");    //配置mysql数据库的方言
        pageHelper.setProperties(properties);
        return pageHelper;
    }

2.配置配置文件application.properties

#我们就可以在代码中使用 PageHelper.startPage(1, 10) 对紧随其后的一个查询进行分页查询,非常方便。
#分页插件配置
#pagehelper.helper-dialect=mysql
pagehelper.helperDialect=mysql
#当该配置设置为true时,pageNum<=0 时会查询第一页,  pageNum>pages(超时总数时),会查询最后一页
pagehelper.reasonable=true
#pagehelper.support-methods-arguments=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql


#如果DispatcherServlet未找到对应的处理器,抛出异常,交给全局异常处理器来处理
spring.mvc.throw-exception-if-no-handler-found=true
#关闭默认的资源处理,否则抛出异常会自动映射到/error
spring.resources.add-mappings=false

3.在controller使用pagehelper

  //使用pagehelper插件进行分页查询
        PageHelper.startPage(page, limit);
        List notices = noticeService.findAll();
        PageInfo noticePageInfo = new PageInfo<>(notices);
        //总记录条数
        long total = noticePageInfo.getTotal();
        List list = noticePageInfo.getList();
        Map result = new HashMap();
        result.put("code", 0);
        result.put("msg", "查询成功");
        result.put("total",total);
        JSONArray jsonArray = JSONArray.fromObject(list);
        result.put("data", jsonArray);
        return result;

4.页面(layui)

table.render({
                                        elem: '#datatest'
                                        ,url:'/findall'
                                        ,request: {
                                            pageName: 'page' //页码的参数名称,默认:page
                                            ,limitName: 'limit' //每页数据量的参数名,默认:limit
                                        }
                                        , response: {
                                            statusName: 'code' //数据状态的字段名称,默认:code
                                            ,countName: 'total' //数据总数的字段名称,默认:count
                                            ,dataName: 'data' //默数据列表的字段名称,认:data        //我返回的datas集合
                                        }
                                        ,cols: [[
                                             {checkbox:true,fixed:true}
                                            ,{field:'id', title: 'ID', sort: true}
                                            ,{field:'title', title: '标题',sort: true}
                                            ,{field:'content', title: '公告内容'}
                                            ,{field:'addDate', title: '发布时间'}
                                            ,{field:'createDate', title: '创建时间'}
                                            ,{fixed: 'right', width:178, align:'center', toolbar: '#barDemo',title: '操作'}
                                        ]]
                                         ,id: 'testReload'
                                        ,page: true
                                        });

你可能感兴趣的:(后端)