1、错误出现的Java文件:mybatis-plus配置类
/**
* https://mp.baomidou.com/guide/page.html
* MyBatisPlus分页插件配置类
*/
@Configuration
public class MybatisPlusConfig {
// 旧版
/*@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}*/
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// ### SQL: SELECT id,username,password FROM user LIMIT ? LIMIT ?
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
paginationInnerInterceptor.setOverflow(true);
//修改后的一条语句
paginationInnerInterceptor.setDbType(DbType.MYSQL);
interceptor.addInnerInterceptor(paginationInnerInterceptor);
return interceptor;
}
}
2、错误原因:DbType.H2换成DbType.MYSQL
因为我用的数据库是MySQL,而我最开始配置(官网cv)为H2了,就导致SQL语句解析错误
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// ### SQL: SELECT id,username,password FROM user LIMIT ? LIMIT ?
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
paginationInnerInterceptor.setOverflow(true);
//修改后的一条语句
paginationInnerInterceptor.setDbType(DbType.MYSQL);
interceptor.addInnerInterceptor(paginationInnerInterceptor);
return interceptor;
}
3、解决办法
见第二点,修改相关DbType