li15234826940 2023-08-22 20:02 采纳率: 0%
浏览 15

想使用PageHelper进行分页查询 在pom.xml文件中不存在MyBatis-Plus的分页插件PaginationInnerInterceptor 但是已然存在冲突问题

想使用PageHelper进行分页查询 在pom.xml文件中不存在MyBatis-Plus的分页插件PaginationInnerInterceptor 但是依然存在冲突问题是什么原因


```java
类型 异常报告

消息 Servlet执行抛出一个异常

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

javax.servlet.ServletException: Servlet执行抛出一个异常
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因。

java.lang.NoSuchMethodError: org.apache.ibatis.reflection.MetaObject.forObject(Ljava/lang/Object;Lorg/apache/ibatis/reflection/factory/ObjectFactory;Lorg/apache/ibatis/reflection/wrapper/ObjectWrapperFactory;)Lorg/apache/ibatis/reflection/MetaObject;
    com.github.pagehelper.SqlUtil.forObject(SqlUtil.java:78)
    com.github.pagehelper.SqlUtil.getsqlSource(SqlUtil.java:516)
    com.github.pagehelper.SqlUtil.getMappedStatement(SqlUtil.java:439)
    com.github.pagehelper.SqlUtil.processCountMappedStatement(SqlUtil.java:143)
    com.github.pagehelper.PageHelper.intercept(PageHelper.java:263)
    org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
    com.sun.proxy.$Proxy12.query(Unknown Source)
    org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
    org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
    org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
    org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
    org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
    org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
    org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
    com.sun.proxy.$Proxy13.find(Unknown Source)
    com.bw.servlet.StudentServlet.service(StudentServlet.java:33)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-22 23:22
    关注

    【以下回答由 GPT 生成】

    问题原因: PageHelper和MyBatis-Plus(以及其他一些类似的插件)都提供了分页功能,但它们的实现方式不同。PageHelper基于拦截器实现分页,而MyBatis-Plus使用的是独立的分页插件PaginationInnerInterceptor。由于两者的实现方式冲突,所以在同时使用时会出现问题。

    解决方案: 要解决这个问题,有两种方法可以尝试:

    1. 使用PageHelper提供的支持MyBatis-Plus的自定义分页插件 Step 1: 在pom.xml文件中添加PageHelper依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本</version> </dependency>

    Step 2: 在application.properties/application.yml中配置PageHelper和MyBatis-Plus相关属性: ``` ## 开启PageHelper支持MyBatis-Plus的插件 pagehelper.helper-dialect=mysql pagehelper.reasonable=true

    ## MyBatis-Plus分页的插件 # 设置为PaginationInnerInterceptor来替代默认的PageInterceptor pagehelper.plugins=com.baomidou.mybatisplus.extension.plugins.PaginationInnerInterceptor ```

    Step 3: 在MyBatis的配置文件中添加PageInterceptor的bean: xml <bean id="pageInterceptor" class="com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration$PageInterceptorConfiguration"> <property name="properties"> <util:properties location="classpath:pagehelper.properties" /> </property> </bean>

    Step 4: 在具有分页查询的Mapper接口中使用com.github.pagehelper.Page替代com.baomidou.mybatisplus.core.metadata.IPage: java @Select("SELECT * FROM table_name") List<YourEntity> selectByPage(Page<YourEntity> page);

    这样配置后,PageHelper就会使用PaginationInnerInterceptor插件来进行分页,同时兼容MyBatis-Plus的其他功能。

    1. 手动实现分页功能,不使用PageHelper插件 如果你不想使用PageHelper插件,你可以手动实现分页功能。在使用MyBatis的Mapper接口编写查询SQL时,使用LIMIT和OFFSET语句来实现分页。具体步骤如下: Step 1: 在Mapper接口中定义查询方法,包含两个参数: java List<YourEntity> selectByPage(@Param("limit") int limit, @Param("offset") int offset);

    Step 2: 在对应的Mapper XML文件中编写SQL语句,使用LIMIT和OFFSET来实现分页查询: xml <select id="selectByPage" resultType="YourEntity"> SELECT * FROM table_name LIMIT #{limit} OFFSET #{offset} </select>

    Step 3: 在Service或Controller中调用Mapper接口的查询方法,传入合适的limit和offset值,即可实现分页查询。

    这两种方法可以解决PageHelper和MyBatis-Plus的分页插件冲突问题,你可以根据自己的需求选择适合的方法。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 8月22日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估