JDBC(T4SQLMX)驱动程序未实现的JDBC DatabaseMetaData方法

时间:2019-04-28 00:29:45

标签: spring-boot spring-boot-test hp-nonstop tandem sqlmx

我正在设置一个Spring-boot应用程序以连接到HP NonStop Tandem的SQL / MX。首先,我通过在应用程序的服务部分中对jdbc参数(例如dataSource,URL等)进行硬编码来实现这种连接,并且它可以正常工作(我能够通过执行查询来访问表)。

现在,我正在尝试删除硬编码部分,并将与数据库相关的信息存储在application.properties文件中,但是现在出现以下错误

org.springframework.jdbc.support.MetaDataAccessException:JDBC驱动程序未实现的JDBC DatabaseMetaData方法-升级驱动程序;嵌套异常是java.lang.AbstractMethodError:方法com / tandem / t4jdbc / SQLMXConnection.isValid(I)Z是抽象

有人可以帮助我了解根本原因吗?硬编码数据源详细信息时使用了相同的驱动程序jar,但当在application.properties中具有数据源属性并且需要升级到jar时,该驱动程序却无法工作。

2 个答案:

答案 0 :(得分:0)

我最近也遇到了同样的问题,对我来说,我使用的是JDBC 3型驱动程序。但是我的spring实现仅支持4型驱动程序,因此,当尝试调用上面链接的方法时,会导致错误。

我建议您为特定的数据库寻找4型驱动程序,并查看是否可以解决您的问题。

答案 1 :(得分:0)

在Spring Boot应用程序,JTDS驱动程序和Hikari连接池中使用Spring Data JPA时,遇到了相同的异常。就我而言,我发现以下问题解决了这个问题:

检查com.zaxxer.hikari.pool.PoolBase类,可以看到以下内容:

this.isUseJdbc4Validation = config.getConnectionTestQuery() == null;

因此,如果配置了连接测试查询,将不尝试JDBC 4验证。在Spring Boot应用程序中,可以这样完成:

spring.datasource.hikari.connection-test-query=select 1;

很遗憾,我对T4SQLMX驱动程序没有任何经验,但是希望它可以有所帮助。