当前使用版本(必填,否则不予处理)
3.5.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
spring boot整合mybatis-plus,使用dynamic-datasource-spring-boot-starter进行mysql和hive多数据源连接。 了解不支持hive的分页。但是此处JdbcUtils代码对hive的jdbc不支持
/**
* 不关闭 Connection,因为是从事务里获取的,sqlSession会负责关闭
*
* @param executor Executor
* @return DbType
*/
public static DbType getDbType(Executor executor) {
try {
Connection conn = executor.getTransaction().getConnection();
return getDbType(conn.getMetaData().getURL());
} catch (SQLException e) {
throw ExceptionUtils.mpe(e);
}
}
getMetaData().getURL()不支持
重现步骤(如果有就写完整)
第一步:设置分页拦截 `@Configuration public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}`
不指定new PaginationInnerInterceptor()的方言和类型 第二步:直接使用分页查询
报错信息
public String getURL() throws SQLException {
throw new SQLFeatureNotSupportedException("Method not supported");
}
java.sql.SQLFeatureNotSupportedException: Method not supported
at org.apache.hive.jdbc.HiveDatabaseMetaData.getURL(HiveDatabaseMetaData.java:786) ~[hive-jdbc-2.3.9.jar:2.3.9]
at com.zaxxer.hikari.pool.HikariProxyDatabaseMetaData.getURL(HikariProxyDatabaseMetaData.java) ~[HikariCP-4.0.3.jar:na]
at com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.getDbType(JdbcUtils.java:49) ~[mybatis-plus-extension-3.5.0.jar:3.5.0]
Comment From: miemieYaho
conn.getMetaData().getURL()是jdbc的标准,分页你可以重写PaginationInnerInterceptor#findIDialect方法