为java.sql.Connection创建一个适用于JDBC 3和4的包装器
问题描述:
是否有一些破解为java.sql.Connection创建了一个包装器,它适用于JDBC 3和4(Sun添加了一些方法和新类型到JDBC的接口4)没有诉诸某些在编译时修补源的东西?为java.sql.Connection创建一个适用于JDBC 3和4的包装器
我的用例是我需要生成一个可以与Java 5和6一起工作的库,我真的很想避免创建它的两个版本。
答
还没有尝试过,但它可能工作。
创建您的类来实现Java 6版本。它将在java.sql中的新类中出现问题(NClob,SQLXML,SQLClientInfoException)。假设你不使用这些类(因为你正在使用Java 5),创建它们的虚拟实现并将它们放在单独的jar中。在Java 5部署中,使用-Xbootclasspath命令行变量引用此jar,以便正确加载它们。
请注意,您的包装器需要知道它是否在Java 5或6上运行(为了正确委派),所以您可能希望在一个单独的类中处理所有Java 6功能,并在运行中实例化时间(请参阅state设计模式)
是否有任何理由不能只写入JDBC 3接口? – 2009-07-05 18:30:53