JDBC功能依赖于驱动程序类型和Java版本

时间:2016-01-19 07:37:46

标签: java jdbc

我试图理清JDK版本和JDBC驱动程序类型之间的关系 - 在实现一些使用驱动程序的程序的上下文中。

使用示例来解释我的问题:给定Java 8运行时,我知道我可以使用try-with-resource自动清理数据库连接和相关资源。但是,我是否还需要确保与我的程序一起安装的JDBC驱动程序是4.1或更高版本?如果数据库供应商仅提供类型3或2驱动程序会发生什么?我会收到运行时错误吗?还是会默默地无法清理资源?或者它能正常工作吗?

尝试使用资源只是一个例子 - 我的问题与此没有特别相关,但更多的是在开发使用JDBC访问某些数据库的程序时应该考虑的因素。 ?我应该首先使用驱动程序类型,然后从中推断出我可以使用哪些java功能?我应该只使用java版本,而且事情会神奇地运作好吗?

1 个答案:

答案 0 :(得分:0)

首先,以下是如何在jdbc ConnectionPreparedStatement中使用try-with-resources。

How should I use try-with-resources with JDBC?

现在关于驱动程序类型,除非您正在处理过去10年未维护的奇怪数据库,否则您几乎可以依赖于类型3或类型4驱动程序作为最新的jdbc驱动程序下载。

如果供应商提供类型3或类型2驱动程序,您将不会收到运行时错误,除非您尝试使用由于某种原因未实现的功能(您将获得某种“未实现”{ {1}})。但是在我15年的java中,我从未见过数据库驱动程序会因此而抛出运行时错误,所以我不担心;)

现在变得越来越广泛,但是对于使用JDBC设计程序,你真的不需要太多关注驱动程序。从理论上讲,您可以将RuntimeException驱动程序更换为SQLServer驱动程序 - 方言中可能存在一些差异,但除此之外应该可以正常工作。一般来说,只要您使用现代关系数据库,事情就应该神奇地工作。

最后,您可以查看使用“数据库连接池”。一些常见的是Oraclecommons-dbcp