Java 6附带JDBC 4,它与以前版本的Java附带的JDBC不向后兼容。
我们有一个JDBC驱动程序,它必须同时支持Java 5和Java 6.如果我在驱动程序中实现新接口,它在Java 5中不起作用,因为接口也使用新类。所以我们有2个版本的驱动程序。有没有办法让Java 5和6都有一个jar?
答案 0 :(得分:8)
如果您实现了JDBC 3.0驱动程序,并且您的客户端在Java 6中运行它,那么如果它们调用任何新的JDBC 4.0方法,它们将会出错。这种情况很少见,因为这些新方法并不经常使用,但如果你想要万无一失,那么下面的解决方案(这是一个黑客攻击)应该可以解决这个问题:
我们可以丢弃JDBC 4.0接口jar,因为:
唯一可能的问题可能是java 5类加载器。如果找不到新的JDBC 4.0接口(如java.sql.NClob),它可能会失败。我不认为这会在Sun JVM中发生,除非你调用一个返回其中一个新接口的方法,所以你应该很好。如果我错了,这是一个问题,那么在Java 5中运行时,只需将丢弃的jar(定义新JDBC 4.0接口的jar)放在类路径上。