PageHelper参数配置supportMethodsArguments踩过的坑

问题现象

带有Limit 的 SQL都默认在后边继续拼接了 limit ?,? 导致SQL语法报错 ;
PageHelper参数配置supportMethodsArguments踩过的坑_第1张图片

pageHelper 难道不是必须开启才能使用吗 ?自动拼接什么鬼??
PageHelper.startPage(1,10);

问题分析

经过一番分析,发现是由于加入了配置
PageHelper参数配置supportMethodsArguments踩过的坑_第2张图片

supportMethodsArguments 参数,默认是false,

官方介绍
image.png

注意: 官方介绍的不是特别清楚,其实这是个自动分页的配置,依据的是入参,如果参数中有pageNum,pageSize分页参数,则会自动分页

参数名称默认取:pageNum,pageSize
参数名称也可以自定义但是需要加配置
PageHelper参数配置supportMethodsArguments踩过的坑_第3张图片

以下是测试的结果
使用PageHelper版本 5.1.6
测试时使用的配置(大多项目)
PageHelper参数配置supportMethodsArguments踩过的坑_第4张图片

自己写了一个SQL,参数类中有 pageNum,pageSize 参数
PageHelper参数配置supportMethodsArguments踩过的坑_第5张图片

当supportMethodsArguments设置为 true 时候默认 启用了分页,并且先执行了count后面的查询也拼接了limitPageHelper参数配置supportMethodsArguments踩过的坑_第6张图片

如果原先SQL中有 limit,并且入参中带有分页参数,则pageHelper会自动执行分页,所以就出现了SQL最后拼接了两个limit导致SQL报错了。

问题解决

supportMethodsArguments参数 默认false ;
解决方案可以将这个配置去掉,或者改为false。将自动根据参数分页配置关闭,在使用的地方手动开启;
PageHelper参数配置supportMethodsArguments踩过的坑_第7张图片

你可能感兴趣的:(工具)