问题场景

Mybatis-Plus 是 MyBatis 的增强框架,简化了 CURD 和分页操作。YashanDB 可兼容使用 Mybatis-Plus,但如未正确配置分页插件,可能会报错或查询失败。
image.png

影响范围

YashanDB 所有版本

使用 Mybatis-Plus 且未配置分页方言的项目

正确配置方式

image.png
步骤一:配置 PageHelper 支持的数据库方言

由于 YashanDB 语法支持 Oracle 的 ROWNUM 和 MySQL 的 LIMIT,所以两种方式都可选。
image.png

以 Oracle 为例:

`pagehelper:
helperDialect: oracle`
或使用 MySQL:
`pagehelper:
helperDialect: mysql`
步骤二:设置分页拦截器为对应数据库类型

Oracle 写法示例:

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));

MySQL 写法示例:

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

常见错误示例:

错误写法:
`
return new Page<>(); // 忘记设置属性`
应改为:

Page page = new Page<>(pageNum, pageSize);
return page;

建议总结

YashanDB 同时兼容 Oracle 和 MySQL 分页语法;
image.png

拦截器配置务必与 PageHelper 方言保持一致;

控制层调用 service 层时直接传 page 对象即可,分页逻辑自动完成。


数据库砖家
1 声望0 粉丝