在使用 Mybatis-Plus 与 YashanDB 数据库集成开发时,有开发者遇到如下问题:
分页功能无法使用,控制台报错提示 “other database not supported”
这类问题其实源于 Mybatis-Plus 框架默认并不支持 YashanDB 的数据库方言识别,但只需简单配置即可规避。
一、问题现象描述
当业务系统启用了 Mybatis-Plus 的分页插件,并连接 YashanDB 数据库时,在运行分页查询时抛出如下异常:
Mybatis Plus Cannot Read Database type or The Database's Not Supported!
日志中提示数据库类型未被识别,分页功能因方言缺失无法执行。
二、问题分析
Mybatis-Plus 在分页插件中会自动识别 JDBC URL 中的数据库类型。其源码 JdbcUtils.getDbType(String jdbcUrl) 中的数据库类型判断逻辑如下:
if (url.contains(":mysql:")) {
return DbType.MYSQL;
} else if (url.contains(":oracle:")) {
return DbType.ORACLE;
// …… 省略其他类型
} else {
logger.warn("Mybatis Plus Cannot Read Database type or The Database's Not Supported!");
return DbType.OTHER;
}
但当前版本的 Mybatis-Plus 中,并没有包含 :yasdb: 或 :yashandb: 的判断逻辑,最终默认被归为 DbType.OTHER,分页语法也就无法生成。
三、解决方案
方案一:手动配置分页插件的方言(推荐)
为分页插件强制指定数据库类型即可绕过自动识别错误。建议选择兼容度高的 Oracle 或 MySQL 方言:
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));
return interceptor;
}
}
注意:目前 YashanDB 的 SQL 语法在分页层面对 Oracle 方言的兼容性更好,推荐优先选择 DbType.ORACLE。
四、其他兼容性建议
五、总结
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。