Open hieastz opened 3 years ago
<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."); } }
官方不打算兼容一下吗?
官方对待这种问题的处理方式很奇怪,使用log4jdbc 肯定有自己的原因。
能否支持一下,并且考虑本地化扩展驱动和url串的情况
druid 1.1.24
log4jdbc只有驱动类在调用acceptsURL connect getPropertyInfo 这三个方法的时候 才会初始化 真实的驱动。 否则 在获取版本的时候 判断 真实的 驱动为null 然后返回版本号为1
druid在init方法中会进行oracle数据库版本检查。
官方不打算兼容一下吗?