使用MyBatis分页插件PageHelper遇到的问题

2023-11-07

最近在使用mybatis的PageHelper进行分页查询时,遇到了不少问题,总结一下希望能帮到别人。

1、版本错误
报错如下

java.lang.NoSuchMethodError: 'java.util.List net.sf.jsqlparser.statement.select.PlainSelect.getGroupByColumnReferences()'

这个错误是因为pagehelper的版本低导致的

解决办法:pagehelper尽量引入5.0以上的依赖。

<!--mybatis分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>4.0</version>
        </dependency>

2、
更换了版本之后问题还没有解决,又有报错如下:

org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in SQL Mapper Configuration
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.ClassCastException: class com.github.pagehelper.PageHelper cannot be cast to class org.apache.ibatis.plugin.Interceptor (com.github.pagehelper.PageHelper and org.apache.ibatis.plugin.Interceptor are in unnamed module of loader 'app')

错误提示讲,是PageHelper出现了问题。通过这篇回答得到了解决:
https://blog.csdn.net/sinat_34104446/article/details/92679046

是因为pagehelper5.0版本以上在mybatis中指定的插件类不是PageHelper,而是PageInterceptor。

解决办法:
更改mybatis配置文件,将插件类com.github.pagehelper.PageHelper换为com.github.pagehelper.PageInterceptor

同时,因为PageHelper4.0以后的版本可以自动检测数据库类型,不需要再配置dialect,所以把配置dialect的标签也删掉(这个标签不删掉也会报错从而无法运行

<plugins>
	<plugin interceptor="com.github.pagehelper.PageHelper">
	    <property name="dialect" value="mysql"/>
	</plugin>
</plugins>
-------    变为如下    -------
<plugins>
	<plugin interceptor="com.github.pagehelper.PageInterceptor">	  
	</plugin>
</plugins>

至此,问题解决

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用MyBatis分页插件PageHelper遇到的问题 的相关文章

  • 与 Eclipse 中的 Java Content Assist 交互

    作为我的插件项目的一部分 我正在考虑与 Eclipse 在 Java 文件上显示的内容辅助列表进行交互 我正在尝试根据一些外部数据对列表进行重新排序 我看过一些有关创建新内容辅助的教程 但没有看到有关更改现有内容辅助的教程 这可能吗 如果是
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • MySQL 跨表计数(*) 查询帮助

    SELECT name COUNT AS count FROM t1 t2 WHERE t2 id t1 id GROUP BY t2 id 我想从 t1 获取名称以及 t2 中 id 与 t1 相同的行数 到目前为止我已经得到了上面的内容
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • Runtime.exec 处理包含多个空格的参数

    我怎样才能进行以下运行 public class ExecTest public static void main String args try Notice the multiple spaces in the argument Str
  • Mockito 使用 @Mock 时将 Null 值注入到 Spring bean 中?

    由于我是 Spring Test MVC 的新手 我不明白这个问题 我从以下代码中获取了http markchensblog blogspot in search label Spring http markchensblog blogsp
  • 数据库级别的别名列名 [MySQL]

    别名 可能是错误的词 因为它是在将列 表名称作为查询中的其他名称引用的上下文中使用的 我感兴趣的是是否有一种方法可以在数据库中为列指定两个名称 如果我要打印这样的表格 它看起来会是这样的 mysql gt SELECT FROM User
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • Jetty、websocket、java.lang.RuntimeException:无法加载平台配置器

    我尝试在 Endpoint 中获取 http 会话 我遵循了这个建议https stackoverflow com a 17994303 https stackoverflow com a 17994303 这就是我这样做的原因 publi
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 超详细的卷积后大小的计算公式

    计算公式定义 定义几个参数 输入图片大小 W W 卷积核大小 F F 步长 S padding的像素数 P 于是我们可以得出计算公式为 N W F 2P S 1 输出图片大小为 N N 以resnet50为例 输入为 1 3 224 224
  • 手机耳机怎么在电脑上说话_手机耳机怎样当做电脑麦克风?

    首先 这篇文章讲的是有绿粉两个颜色的耳机 麦克接口的电脑 方法一 某宝9 9一条耳机一分二分线器进行解决 注意默认录音设备是否设置对了 方法二 玄学声卡 某些电脑的自带声卡很神奇 可以玄学逆转电流 就比如我家电脑 只要把手机耳机 单线耳机
  • Hive启动报错(个人遇到问题&解决方法)

    hive执行sql报错 FAILED SemanticException org apache hadoop hive ql metadata HiveException java lang RuntimeException Unable
  • C++ 代码换行

    1 字符串太长 换行显示 怎么办 2 使用反斜杠 如下 string str abcd 1234 注意 反斜杠后面不准有任何字符 下一行开头的制表符不包含在整个字符串中 但是下一行开头的空格符包含在整个字符串中 3 使用双引号 如下 str
  • 浅谈关于QT中Webkit内核浏览器

    关于QT中Webkit内核浏览器是本文要介绍的内容 主要是来学习QT中webkit中浏览器的使用 提起WebKit 大家自然而然地想到浏览器 作为浏览器内部的主要构件 WebKit的主要工作是渲染 给定一个HTML文件 WebKit的工作是
  • linux设备管理之设备号与次设备号

    linux设备管理之主设备号与次设备号 jinzi 博客园 剽窃 过来的 记录下 以备查 主设备号和次设备号 一个字符设备或者块设备都有一个主设备号和次设备号 主设备号和次设备号统称为设备号 主设备号用来表示一个特定的驱动程序 次设备号用来
  • 使用 Python 对股票数据分析预测

    使用 Python 对股票数据分析预测 文章目录 使用 Python 对股票数据分析预测 目录索引 模块安装 股票数据获取 雅虎财经 Quandl 模块 Pandas Datareader 模块 数据预处理 缺失值查找 数据规范化 股价涨跌
  • 前端埋点VS后端埋点

    前端埋点比后端埋点更灵活 比如页面停留时间 点击下拉框动作等都可以通过埋点接口让后端记录下来 而后端埋点 这些是记录不下来的 因为没有请求 后端埋点还有一个问题 有可能前端不同按钮调用后端同一个接口 此时后端埋点是区分不出来的 后端埋点又分
  • 代码习惯

    补个liangs333的代码习惯 include
  • 全面 Serverless 化,阿里云微服务引擎 MSE 重磅升级

    微服务已成为企业数字化首选的应用架构 并正在向缩短服务的构建周期和降低资源成本 提升架构质量和架构效率两个方向演进 今天 阿里云正式宣布微服务引擎 MSE 重磅升级 全面 Serverless 化 带来两大新形态和两大新体验 产业新形态 业
  • [Android AIDL系列 1] 手动编译aidl文件,生成Java、C++[android]、C++[ndk]、Rust接口

    AIDL文件在Android系统上应用广泛 和底层的Binder机制紧密关联 在Android源码或者Android Studio中通常是自动编译aidl文件 生成对应语言的接口文件 做应用层Java开发 aidl和binder封装的比较
  • centos7虚拟网卡其他服务器不识别,Vmware10 下安装centos7,网卡无法识别问题处理...

    问题表现 之前安装的是32位版本的centos5 后来操作不当损坏 于是安装了64位版本的centos7 安装后网卡无法识别 用如下第一种方式顺利解决 网络连接使用nat方式 由于Vmware虚拟网卡和linux兼容问题导致驱动无法正常安装
  • Retrofit+OKHttp+RxAndroid,图文最详细解释(Kotlin)

    文章目录 一 Retrofit 1 上图说明了如下几点 2 Retrofit 对Okhttp做了什么 3 下面我们来看一下Retrofit的具体使用 1 导入依赖 module build gradle下 2 添加网络权限 src main
  • mac iterm2快捷键

    mac iterm2快捷键 1 命令一 查找 Cmd f 自动完成 Cmd 命令历史 Cmd Shift H
  • vue 组件同页面多次调用 props 传值无效

    项目场景 在同一个编辑页面使用了同一个Vue组件 导致props 传值无效 问题描述 在做一个文章编辑的页面 需要通过切换文章类型 音频 视频 显示隐藏上传不同类型的按钮给用户上传 例如以下代码会出现一个奇怪的问题 当我从article m
  • MySQL笔记 —— 基础(概念,对于数据库、表、数据的各种操作语句)

    目录 关系型数据库 创建 查看 删除数据库 创建表 查询表 删除表 修改表结构 插入数据 删除数据 修改数据 查询语句 where与having的区别 语句的执行顺序 别名 子句中的运算符 limit 分页 关系型数据库 数据库与普通文件系
  • SQL每日一练(牛客新题库)——第3天: 条件查询

    文章目录 1 查找某个年龄段的用户信息 2 查找除复旦大学的用户信息 3 用where过滤空值练习 4 高级操作符练习 1 5 如何让刷题变得更高效 1 查找某个年龄段的用户信息 题目 现在运营想要针对20岁及以上且23岁及以下的用户开展分
  • 金蝶部署在公有云服务调用外部链接报错:错误为:System.Net.WebException: 基础连接已经关闭: 发送时发生错误。

    刚开始一直以为是因为外部链接是https的问题 就一直更改安全协议 代码改为 if url StartsWith https StringComparison OrdinalIgnoreCase 创建HttpWebRequest reque
  • 常用的搜索引擎

    参考博客 https www chinaz com news 2017 0822 798159 shtml 1 Google 2 Bing 3 Yahoo 4 百度
  • 使用MyBatis分页插件PageHelper遇到的问题

    最近在使用mybatis的PageHelper进行分页查询时 遇到了不少问题 总结一下希望能帮到别人 1 版本错误 报错如下 java lang NoSuchMethodError java util List net sf jsqlpar