oracle瘦驱动程序使用哪个jar文件?

oracle thin driver which jar file is used?

我从某人那里继承了一个 VM(linux 操作系统)。它在 tomcat 和 oracle 11.2.0 数据库中有一个 java 应用程序 "bob" deployed/running。我在 beanshell(java 的轻量级)中编写了一个简单的数据库连接,如下例所示,它执行得很好,但是我想到了一个问题。

Connection con = DriverManager.getConnection("jdbc:oracle:thin:hostname:1521:sidname","username","password");

我注意到 ojdbc14.jar 找到 /somepath/tomcat/webapps/bob/WEB-INF/lib/ojdbc14.jar 并且来自 oracle 安装 /somepath/oracle/product/11.2.0/xe/jdbc/lib/{ojdbc5.jar,ojdbc6_g.jar,ojdbc6.jar} 找到三个 ojdbc jar 文件。

在这种情况下,瘦驱动程序使用哪个 jar 文件来建立数据库连接并成功运行 sql 查询语句?

你应该删除 ojdbc14.jarjdbc5.jar。第一个用于 Java 1.4,第二个用于 Java 5(除非你实际使用这些过时的、不受支持的 Java 版本)。

如果您使用 Java7,那么您应该使用 ojdbc7.jar。如果您仍在使用(不受支持的)Java 6,则应使用 ojdbc6.jar.

请注意,文件名中的数字仅表示 Java 版本,而不是驱动程序的版本。为此,您需要查看 MANIFEST.MF 或使用 DatabaseMetaData.getDriverVersion()

关于 class 在 Tomcat 中加载:

Tomcat 从 $CATALINA_HOME/lib$CATALINA_HOME/lib/extWEB-INF/lib 目录中部署的 webbaps 之一加载 classes。

因此,在您的情况下,正在使用过时的、过时的 /somepath/tomcat/webapps/bob/WEB-INF/lib/ojdbc14.jar

您应该更换为最新版本。