之前讲了Springboot整合Mybatis,然后先容了若何自动天生pojo实体类、mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功效。接下来要说一说Mybatis 的分页功效:使用Mybatis-PageHelper插件,实现分页功效。Spring Boot入门系列文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html

 

一、pagehelper先容

pageHelper是一款异常简朴、易用的分页插件,它能很好的集成在spring boot中。它是一个基于mybatis的一款插件,以是我们在使用它时,我们需要使用mybatis作为持久层框架。

github地址是https://github.com/pagehelper/Mybatis-PageHelper。

 

二、快速最先

若是我们需要使用pageHelper的话,我们需要在spring boot项目中引入pageHelper的依赖。之前先容过Spring Boot整合mybatis,这里就不先容了。《Spring Boot入门系列(六)Spring Boot若何使用Mybatis XML 设置版【附详细步骤】》 。

1、pom 设置

增添pageHelper的依赖

        <!-- pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
        </dependency>

注重:spring boot 引入的jar包必须是要pagehelper-spring-boot-starter ,若是单独引入pagehelper的话,会提醒错误。

 

2、application.properties增添pagehelper 设置

# 分页框架
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

说明: 

  helperDialect : 指定数据库,可以不设置,pagehelper插件会自动检测数据库的类型。

  resonable : 分页合理化参数默认false,当该参数设置为true 时,pageNum <= 0 时,默认显示第一页,pageNum 跨越 pageSize 时,显示最后一页。

  params : 用于从工具中凭据属性名取值,可以设置pageNum,pageSize,count 不用设置映射的默认值。

  supportMethodsArguments : 分页插件会凭据查询方式的参数中,自动凭据params 设置的字段中取值,找到合适的值会自动分页。 

 

到这里设置就完成了,在Springboot中整合就是这么简练,约定约莫设置的方式,大量的减少了设置文件的使用 。

 

3、实现分页

在原来的UserService类和UserServiceImpl 类中,增添 queryUserListPaged 接口和对应的方式实现。

    @Override
    public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) {
        // 最先分页
 PageHelper.startPage(page,pageSize);
        Example example = new Example(SysUser.class);
        Example.Criteria criteria = example.createCriteria();

        if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) {
            criteria.andLike("username", "%" + user.getUsername() + "%");
        }

        if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) {
            criteria.andLike("nickname", "%" + user.getNickname() + "%");
        }

        List<SysUser> userList = userMapper.selectByExample(example);

        return userList;
    }

分页的焦点就一行代码, PageHelper.startPage(page,pageSize); 这个就标识最先分页。加了这个之后pagehelper 插件就会通过其内部的拦截器,将执行的sql语句,转化为分页的sql语句。

注重:使用时PageHelper.startPage(pageNum, pageSize)一定要放在列表查询的方式中,这样在查询时会查出响应的数据量且会查询出总数。

 

4、在原来的MybatisController 控制器中增添如下方式:

@RequestMapping("/queryUserListPaged")
    public JSONResult queryUserListPaged(Integer page) {
        if (page == null) {
            page = 1;
        }

        int pageSize = 10;

        SysUser user = new SysUser();

        List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);

        return JSONResult.ok(userList);
    }

说明:

  挪用的方式,只需将page页码,和pageSize 每页若干条这两个字段传入即可。 

 

最后

以上,就把Spring Boot集成pagehelper插件,实现分页功效先容完了。照样比较简朴的。

这个系列课程的完整源码,也会提供给人人。人人关注我的微信民众号(架构师精进),回复:springboot源码。获取这个系列课程的完整源码。

 

,

联博以太坊

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

Allbet Gaming声明:该文看法仅代表作者自己,与Allbet Gaming无关。转载请注明:px111.net:Spring Boot入门系列(十六)使用pagehelper实现分页功效,Spring Boot入门系列(六)Spring Boot若何使用Mybatis XML 设置版【附详细步骤】
发布评论

分享到:

皇冠app下载:31省份新增确诊17例:本土14例在北京
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。