学习使用此分页插件最好的办法还是观看插件官网,关于使用此插件如何实现查询全部,往上看了很还很多,有的说设置参差不齐。最后还是看官网解决的问题,主要是时间不同,插件得版本也不同,还有得说的不齐全,只说了怎么设置参数,设置pagenum(1),pagesize(0)

没说还有yml文件需要配置。所以尝试半天没有效果以为是其他问题,下面我简单谈谈怎么使用pagehelper 插件

附带pagehulper使用文档官网如何使用分页插件

1,springboot+mybatis项目就不用说了吧, pom.xml文件导入相关得java包,注意版本

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

  <properties>
        <java.version>11</java.version>
    </properties>

<dependencies>

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
     </dependency>

       <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>

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


</dependencies>

 2,需要配置application.yml文件,许多相关得功能开启都需要在配置文件里面配置,具体有哪些就需要去看官方文档了,曾经得使用方式不代表现在得使用方式了,而在往上查询得有很多是以前得使用方式,当时正确,现在不一定了,所以最正确得方式还是去看官网。一直是最新的更新。

pagehelper:
  helperDialect: sqlserver
  reasonable: true
  supportMethodsArguments: true
  pageSizeZero: true

注意第四条, pageSizeZero: true 开启查询全部size= 0 就可以了

 分页插件参数介绍

分页插件提供了多个可选参数,这些参数使用时,按照上面两种配置方式中的示例配置即可。

分页插件可选参数如下:

  • dialect:默认情况下会使用 PageHelper 方式进行分页,如果想要实现自己的分页逻辑,可以实现 Dialect(com.github.pagehelper.Dialect) 接口,然后配置该属性为实现类的全限定名称。

下面几个参数都是针对默认 dialect 情况下的参数。使用自定义 dialect 实现时,下面的参数没有任何作用。

  1. helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:
    oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
    特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。
    你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。

  2. offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为 true 时,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。

  3. rowBoundsWithCount:默认值为false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为true时,使用 RowBounds 分页会进行 count 查询。

  4. pageSizeZero:默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)

      //分页查询的条件是在报文尾对象中
            Integer current = 1;
            Integer size =  0 ;
            String additionInfostr = jsonObject.get("additionInfo") == null ? "" : jsonObject.get("additionInfo").toString();
            if(!additionInfostr.equals("")){
                AdditionInfo additionInfoin = JSONObject.parseObject(additionInfostr, AdditionInfo.class);
                current = Math.toIntExact(additionInfoin.getCurrent() == null ? 1 : additionInfoin.getCurrent());
                //每页数量   如果前端不传值 默认查询全部
                size = Math.toIntExact(additionInfoin.getSize() == null ? 0 : additionInfoin.getSize());
            }
    
            //分页查询语句添加到条件查询语句上面
            PageHelper.startPage(current, size);
    
            List<Syssetting> sysUserList = iSyssettingService.list(queryWrapper);

    如果前端不传值,则默认查询全部,可以进行判断赋值。

  5. postman测试

  6. {
    	"head": {
    		"function_code": "ZNDJ10202",
    		"date_time": "202207201041",
    		"keyExamPlace": "ZNDJ10101",
    		"keyHospital": "123123213"
    	},
    	"data":{
           "keyExamPlace" : "4ACA027E-41B9-EB11-80C6-A4BB6D654571" 
          
           
        },
    	"additionInfo": {
     
    
        }
    }

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐