今天在写项目代码的时候用到了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);

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐