首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让JDBC驱动程序在Java5和6中工作?

如何让JDBC驱动程序在Java5和6中工作?
EN

Stack Overflow用户
提问于 2009-08-06 11:13:44
回答 1查看 4.9K关注 0票数 4

Java 6附带JDBC 4,JDBC 4与以前版本的Java附带的JDBC不向后兼容。

我们有一个JDBC驱动程序,它必须同时支持Java 5和Java 6。如果我在驱动程序中实现新的接口,它在Java 5中不起作用,因为这些接口也使用新的类。所以我们有两个版本的驱动程序。有没有办法让一个jar同时用于Java5和6?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-07 17:09:51

如果您实现了一个JDBC 3.0驱动程序,并且您的客户机在Java 6中运行它,那么当它们调用任何新的JDBC 4.0方法时都会收到错误。这很少见,因为这些新方法并不经常使用,但如果你想变得简单,下面的解决方案(这是一个技巧)应该能做到:

用Java5编译

  1. (如果你用Java6编译并在Java5中运行,你会得到一个与你的普通JDBC3.0驱动程序不匹配的版本,但也包含了新的JDBC4.0方法的实现(注意:这将导致编译错误,因为Java5没有在单独的项目中定义像java.sql.NClob)
  2. create这样的类型一个新的JDBC4.0接口的精确副本(如java.sql.NClob) (所以现在有2个项目:原始的和这个的)
  3. 同时编译这两个项目。并为每个项目创建一个单独的jar)

  • 您的JDBC驱动程序实现(保留此jar )
  • 新的JDBC4.0接口(丢弃此jar

我们可以丢弃JDBC 4.0接口jar,因为:

  • 在Java6中,那些新的JDBC4.0接口是在Java5中定义的
  • ,而JDBC3.0接口没有定义新的方法(比如Connection.createNClob()),所以您的用户不会将它们称为

唯一的潜在问题可能是java5的类加载器。如果找不到新的JDBC4.0接口(如java.sql.NClob),它可能会失败。我认为这不会在Sun JVM中发生,除非您调用一个返回这些新接口的方法,所以您应该做得很好。如果我错了,这是一个问题,在Java 5中运行时,只需将丢弃的jar (定义新的JDBC 4.0接口的jar)放在类路径中。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1238252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档