我从某人那里继承了一个VM(linux OS)。它在tomcat和oracle 11.2.0数据库中部署/运行了一个java应用程序“bob”。我在beanshell(java的轻量级)中编写了一个简单的数据库连接,如下例所示,它执行得很好但是我想到了一个问题。
Connection con = DriverManager.getConnection("jdbc:oracle:thin:hostname:1521:sidname","username","password");
我注意到ojdbc14.jar从oracle安装/somepath/oracle/product/11.2.0/xe/jdbc/lib/ {找到/somepath/tomcat/webapps/bob/WEB-INF/lib/ojdbc14.jar AND ojdbc5.jar,ojdbc6_g.jar,ojdbc6.jar}发现了三个ojdbc jar文件。
在这种情况下哪个jar文件使用瘦驱动程序来建立数据库连接并成功运行sql查询语句?
答案 0 :(得分:5)
你应该摆脱ojdbc14.jar
和jdbc5.jar
。第一个用于Java 1.4 ,第二个用于Java 5 (除非您实际使用这些过时的,不受支持的Java版本)。
如果您使用的是Java7,则应使用ojdbc7.jar
。如果您仍在使用(不受支持的)Java 6,则应使用ojdbc6.jar
。
请注意,文件名中的数字仅表示Java版本,而不是驱动程序的版本。为此,您需要查看MANIFEST.MF或使用DatabaseMetaData.getDriverVersion()
关于Tomcat中的类加载:
Tomcat从$CATALINA_HOME/lib
,$CATALINA_HOME/lib/ext
或WEB-INF/lib
目录中的一个已部署的webbaps加载类。
因此,在您的情况下,正在使用过时的,过时的/somepath/tomcat/webapps/bob/WEB-INF/lib/ojdbc14.jar
。
您应该使用最新版本替换。