为java.sql.Connection创建一个与JDBC 3和4一起使用的包装器

是否有一些hack为java.sql.Connection创建一个包装器,它与JDBC 3和4一起工作(Sun为JDBC 4的接口添加了几个方法和新类型), 而不需要在编译时修补源代码?

我的用例是我需要生成一个适用于Java 5和6的库,我真的想避免创建它的两个版本。

没试过但它可能会奏效。

创建您的类以实现Java 6版本。 它将在java.sql(NClob,SQLXML,SQLClientInfoException)中的新类有问题。 假设您不使用这些类(因为您正在使用Java 5),请创建它们的虚拟实现并将其放在单独的jar中。 在Java 5部署中,使用-Xbootclasspath命令行变量引用此jar,以便正确加载它们。

请注意,您的包装器需要知道它是在Java 5还是6上运行(为了正确委派),因此您可能希望将所有Java 6function都在一个单独的类中处理,并在运行时实例化(请参阅国家设计模式)