Java JDBC驱动程序及其应用

Java JDBC驱动程序及其应用,java,mysql,jdbc,Java,Mysql,Jdbc,我的应用程序相当基本,它创建一个JDBC驱动程序,然后尝试与数据库建立连接。奇怪的是,我的代码在建立连接之前停止执行。因此,我添加了.getDrivers方法来列出驱动程序,并注意到列出了几个驱动程序;我不知道为什么,因为java包中只包含(1)个mysql.jar。代码如下: Driver mySQLDriver = new com.mysql.jdbc.Driver(); Enumeration<java.sql.Driver> e = DriverManager.getDri

我的应用程序相当基本,它创建一个JDBC驱动程序,然后尝试与数据库建立连接。奇怪的是,我的代码在建立连接之前停止执行。因此,我添加了.getDrivers方法来列出驱动程序,并注意到列出了几个驱动程序;我不知道为什么,因为java包中只包含(1)个mysql.jar。代码如下:

Driver mySQLDriver = new com.mysql.jdbc.Driver();

Enumeration<java.sql.Driver> e = DriverManager.getDrivers();
// Printing the list
while (e.hasMoreElements()) {
    System.out.println("inside servlet DEBUG Driver Name: " + e.nextElement().getClass());
    // java.sql.Driver val = e.nextElement();
    // DriverManager.deregisterDriver( mySQLDriver);
}

conn = DriverManager.getConnection(DB_URL, USER, PASS); // NEVER GETS TO THIS LINE??
Driver mySQLDriver=new com.mysql.jdbc.Driver();
枚举e=DriverManager.getDrivers();
//打印列表
而(e.hasMoreElements()){
System.out.println(“内部servlet调试驱动程序名称:+e.nextElement().getClass());
//java.sql.Driver val=e.nextElement();
//DriverManager.deregisterDriver(mySQLDriver);
}
conn=DriverManager.getConnection(DB_URL,USER,PASS);//从来没有到过这条线??
调试结果---

内部servlet调试驱动程序名称:class org.postgresql.Driver/??????从哪里来

内部servlet调试驱动程序名称:class com.mysql.cj.jdbc.Driver/

内部servlet调试驱动程序名称:class com.mysql.jdbc.Driver//WAR文件包含mysql-connector-java-5.1.46-bin.jar

不确定如何从驱动程序管理器中列出postgresql.Driver和mysql.cj.jdbcDriver。只应显示com.mysql.jdbc.Driver。是否有一种方法可以删除或取消注册代码中的其他两个


任何帮助都将不胜感激。

如果驱动程序已加载,则它们位于类路径上。您使用的是哪个Java版本,您是否检查过Tomcat lib文件夹(或者使用反射查找jar文件的位置)?事实上,它从未到达
DriverManager.getConnection
有点可疑,我建议检查您的类路径以查找任何其他JDBC驱动程序,我听说有报告称,行为不端的JDBC驱动程序在加载过程中导致死锁。您可能还想考虑得到一个线程转储。