首先来看看错误提示
class java.util.ArrayList cannot be cast to class com.github.pagehelper.Page (java.util.ArrayList is in module java.base of loader 'bootstrap'; com.github.pagehelper.Page is in unnamed module of loader 'app')
根据这个提示上网查了一堆,很多都是说数据类型的转换错误之类的。
ClassCastException: XXX are in unnamed module of loader ‘app‘异常分析_=PNZ=BeijingL的博客-CSDN博客
看看源代码
@Override
public PageBean page(Integer page, Integer pageSize,String name, Short gender,LocalDate begin,LocalDate end) {
//1. 设置分页参数
PageHelper.startPage(page,pageSize);
//2. 执行查询
List<Emp> empList = empMapper.list(name, gender, begin, end);
Page<Emp> p = (Page<Emp>) empList;//3. 封装PageBean对象
PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
return pageBean;
}
跟着教程做的,那个代码可以运行,这个却不行,后来才发现不知是因为这个分页插件是不是不支持springboot3.0还是不知jdk17的原因,
就是不支持springboot3.0以上的版本, 把版本降到2.0的就可以解决了,这里JDK版本是17还是11都没有关系,但是springboot3.0以上版本最低都要求JDK17了
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>3.0.5</version>-->
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
同时分页插件一直没显示的图案也显示了出来
看来Springboot和JDK版本不是越高越好,很多老东西都不支持了,根据实际需求进行选择,这个分页插件也不是必须的,也可以自己写SQL。