欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page

程序员文章站 2022-06-18 23:18:31
...

今天在写项目代码的时候用到了com.github.pagehelper分页插件,遇到了如下错误:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page

经过排查,发现是maven引入出错,应该引入如下:

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

而不是

  <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>

下面总结一下pagehelper常见的问题:

1.mybatis-config.xml文件配置

4.2.x版本的分页插件:

<configuration>

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper" />
    </plugins>
</configuration>

5.0及以上版本的分页插件:

<configuration>

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor" />
    </plugins>
</configuration>

同时,PageHelper插件4.0.0以后的版本支持自动识别使用的数据库,可以不用配置 <property name="dialect" value="mysql"/>(4.0.0以前的分页插件需要在plugin下加上property标明使用的数据库)

2.在类中使用PageHelper

导入的包

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

需要设置查询的页码和每页的信息数量

PageHelper.startPage(index, pageSize);

之后查询数据库的语句会自动分页

Page<Admin> adminList = (Page<Admin>) adminService.selectAllAdmin(admin);

如果配置没有问题,那么看一下在这两行代码中间是否还有查询数据库的操作,如果有就会报上面的错

相关标签: pagehelper