当前使用版本(必填,否则不予处理)

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方法