如何使JDBC驱动程序工作在的Java 5和6?(How to Make JDBC Driver W

2019-07-31 13:05发布

Java 6中自带JDBC 4,这是不向后兼容JDBC附有Java的早期版本。

我们必须支持的Java 5和Java 6.如果我实现在驱动程序中的新的接口,它并没有在Java 5的工作,因为接口也采用了新的类JDBC驱动程序。 因此,我们有2个版本的驱动程序。 有没有办法有一个罐子为Java 5和6?

Answer 1:

如果实现JDBC 3.0驱动程序,您的客户在Java 6中运行它,如果他们调用任何新的JDBC 4.0方法,他们会得到错误。 这是罕见的,因为这些新的方法并不常用,但如果你想成为防呆,下面的解决方案(这是一个黑客)应该做的伎俩:

  1. 用java编译5(如果您编译使用Java 6和Java 5中运行,你会得到一个版本不匹配错误)
  2. 实现正常的JDBC 3.0驱动程序,而且还包括为新的JDBC 4.0方法的实现(注意:这会导致编译错误,因为Java 5中没有定义像java.sql.NClob类型)
  3. 在一个单独的项目中创建新的JDBC 4.0接口(就像java.sql.NClob)的精确副本(所以现在有2个项目:原来,这一个)
  4. 编译两个项目一起,使每个项目单独的jar:
    • JDBC驱动程序实现(保持这个罐子)
    • 新的JDBC 4.0接口(丢弃这个罐子)

我们可以抛弃JDBC 4.0接口罐子,因为:

  • 在Java 6中,这些新的JDBC 4.0接口定义
  • 在Java 5中的JDBC 3.0接口,没有定义新的方法(如Connection.createNClob()),所以你的用户不会给他们打电话

唯一潜在的问题可能是与Java类加载器5。 如果不能找到新的JDBC 4.0接口(就像java.sql.NClob)它可能会失败。 我不认为这会在Sun JVM发生,除非你调用,它返回这些新接口中的一个方法,所以你应该不错。 如果我错了,这是一个问题,只是把罐子丢弃在Java 5中运行时,在你的classpath(即定义的新JDBC 4.0接口的)。



文章来源: How to Make JDBC Driver Work in Java 5 & 6?
标签: java jdbc