PageHelper使用

news/2025/1/11 22:45:21/

PageHelper : mybatis中的分页插件

文档 : https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

springboot使用PageHelper
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>最新版本</version>
</dependency>

springboot配置文件:

# 是否启用合理化分页,默认 false,,如果为true,当pageNum小于1的时候,会自动设置为1,
#大于totalPages的时候会设置为 totalPages
pagehelper.reasonable=false 
# 没有手动的进行count查询,pagehelper会在进行分页之前自动查询一次count,获取总记录数,,确保分页结果的准确
# 如果你不希望进行默认的count查询,设置为false,节省数据库开销
pagehelper.defaultCount=true

在这里插入图片描述
其他的配置:

spring.datasource.url=jdbc:mysql://localhost:3306/sleeve?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.mapper-locations=classpath:mapper/*.xml
mybatis.configuration.mapUnderscoreToCamelCase=truelogging.level.com.cj.mapper=debug

使用:
在这里插入图片描述

问题

pageHelper不安全分页:
PageHelper的  分页参数 和 线程 是绑定的,如果PageHelper生成了一个分页参数,并且没有被消费,这个参数就会一直保留在这个线程中,,,当这个分页参数消费了之后,PageHelper会在finally代码中自动清除了ThreadLocal存储的对象,,
当你想分页的查询没有走,就会莫名其妙的分页下一个查询,,可以使用`PageHelper.clearPage()` 在这个查询之后,强制清空分页参数

在这里插入图片描述
在这里插入图片描述

mybatis使用collection之后,父集合分页问题

使用了 collection之后,,select标签中的语句,一般是联合查询,,pageHelper分页就会根据这个联合查询的结果,进行分页,,导致,分页的不是我们想要的父集合,,是联合查询的父子集合

collection 标签中,可以分段查询,先查父集合,,在根据传入的方法和参数,进行子查询,这样分页就不会有问题

  <resultMap id="spuMap" type="com.cj.model.Spu"><id property="id" column="id"/><result property="title" column="title"/><collection property="skuList" ofType="com.cj.model.Sku" select="com.cj.mapper.SkuMapper.getSkuBySpuid" column="id"><id property="id" column="id"/><result property="title" column="title"/></collection></resultMap><select id="getspuByPage" resultMap="spuMap">select * from spu</select>

select : 获取子集合数据的查询语句
column : 父对象中用于关联的列名
fetchType: lazy ,eager : 是否是懒加载

引用:https://blog.csdn.net/weixin_43786801/article/details/126904052

在这里插入图片描述


http://www.ppmy.cn/news/204551.html

相关文章

程序员需要了解的一些测试方法。

作为程序员&#xff0c;了解和应用基本的测试方法是至关重要的。下面列出了一些程序员需要了解的基本测试方法&#xff1a; 1. 单元测试&#xff1a;单元测试是针对程序中最小的可测试单元&#xff08;函数、方法、类等&#xff09;进行的测试。通过编写测试用例来验证单元的行…

刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 2023/6/4

2465. 不同的平均值数目 这道题挺容易的。主要是排序哈希。题目里有明显的去重的意思&#xff0c;所以哈希set是肯定有的。找最大最小&#xff0c;最方便的就是排序。这里我为了操作方便&#xff0c;把数组nums拷贝到了集合list里面。排一次序&#xff0c;之后取最大值最小值都…

硬盘序列号、设备序列等查询

1.硬盘序列号查询。 1&#xff09;Windowsr,输入cmd 回车 2&#xff09;输入diskpart&#xff0c;回车 3&#xff09;输入list disk&#xff0c;回车 4&#xff09;输入select disk *(可选)&#xff0c;回车 5&#xff09;输入detail disk&#xff0c;回车结束。 2.ip(mac)地…

计算机硬盘型号怎么看,硬盘编号怎么看

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 查看硬盘编号即查看磁盘ID&#xff0c;操作方法如下&#xff1a; 1、点击开始&#xff0c;在搜索一栏中输入cmd&#xff0c;点击回车键&#xff0c;就可以打开命令窗口&#xff1b;…

手动查询硬盘序列号

win7旗舰版1. 开始-运行-输入&#xff1a;wbemtest 回车 2. 单击"连接", 输入&#xff1a;root\cimv2 回车; 或者ROOT\SecurityCenter 3. 单击"查询", 输入&#xff1a;select * from Win32_PhysicalMedia 应用&#xff0c;出来三个&#xff0c;我这第一…

如何查看计算机的硬盘序列号,电脑硬盘序列号怎么查?一招查看硬盘序列号的简单方法...

好多网友想知道自己电脑硬盘序列号是多少&#xff1f;这该怎么查看&#xff1f;硬盘的序列号是一个唯一的识别号,我们安装一些大型的开发软件时都会用到。其实查看硬盘序列号的方法很简单&#xff0c;今天小编教大家一招查看电脑硬盘序列号的简单方法。 具体方法如下&#xff1…

怎么查看计算机硬盘sn,硬盘序列号,教您怎么查看硬盘序列号

很多朋友不知道我们电脑上使用的硬盘是有序列号的&#xff0c;通过序列号我们可以查硬盘的真伪&#xff0c;那么怎么查看硬盘序列号呢&#xff1f;下面小编就来教您怎么查看硬盘序列号。 下面是查看硬盘序列号的步骤&#xff1a; 1.首先敲击键盘的“WINR”键&#xff0c;然后在…

查询硬盘序列号

1.首先&#xff0c;敲击键盘“WINR”&#xff0c;然后在打开的运行窗口里输入cmd&#xff0c;再点确定。 2.接着在打开的命令窗口中&#xff0c;输入diskpart&#xff0c;再敲下回车键。 3.下一步&#xff0c;输入list disk&#xff0c;再敲击回车键&#xff0c;就可以看到电脑…