<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
druid 1.1.24
log4jdbc只有驱动类在调用acceptsURL connect getPropertyInfo
这三个方法的时候 才会初始化 真实的驱动。
否则 在获取版本的时候 判断 真实的 驱动为null 然后返回版本号为1
public int getMajorVersion()
{
if (lastUnderlyingDriverRequested == null) {
return 1;
}
return lastUnderlyingDriverRequested.getMajorVersion();
}
druid在init方法中会进行oracle数据库版本检查。
protected void initCheck() throws SQLException {
if (JdbcUtils.ORACLE.equals(this.dbType)) {
isOracle = true;
//此时未执行log4jdbc驱动类的 acceptsURL 或 connect 或 getPropertyInfo 三个中的任意一个方法
if (driver.getMajorVersion() < 10) {
throw new SQLException("not support oracle driver " + driver.getMajorVersion() + "."
+ driver.getMinorVersion());
}
if (driver.getMajorVersion() == 10 && isUseOracleImplicitCache()) {
this.getConnectProperties().setProperty("oracle.jdbc.FreeMemoryOnEnterImplicitCache", "true");
}
oracleValidationQueryCheck();
} else if (JdbcUtils.DB2.equals(dbType)) {
db2ValidationQueryCheck();
} else if (JdbcUtils.MYSQL.equals(this.dbType)
|| JdbcUtils.MYSQL_DRIVER_6.equals(this.dbType)) {
isMySql = true;
}
if (removeAbandoned) {
LOG.warn("removeAbandoned is true, not use in production.");
}
}
官方不打算兼容一下吗?
2条答案
按热度按时间2skhul331#
官方对待这种问题的处理方式很奇怪,使用log4jdbc 肯定有自己的原因。
klsxnrf12#
能否支持一下,并且考虑本地化扩展驱动和url串的情况