class.forname()给出"驱动程序类"例外

时间:2015-02-01 06:52:18

标签: java mysql database jdbc netbeans-7

我使用以下代码段将我的java应用程序连接到mySQL DB,但它给出了一个错误,我无法弄清楚原因。

try {
  con = null;
  String url = "jdbc:mysql://localhost:3306/";
  String db = "ass1";
  String driver = "com.mysql.jdbc.Driver";
  String user = "";
  String pass = "";

  System.out.println("OK 1"); //Checkpoint 1

  Class.forName(driver).newInstance();

  System.out.println("OK 2"); //Checkpoint 2

  con = DriverManager.getConnection(url + db, user, pass);

  System.out.println("OK 3"); //Checkpoint 3
} 
catch (Exception e) {
  System.out.println(e.getMessage());
}

异常(输出):

run:
OK 1
com.mysql.jdbc.Driver
null
BUILD SUCCESSFUL(total time: 13 seconds)

所以例外是驱动程序本身。这是我第一次遇到这个问题。

P.S。:请忽略检查点。

2 个答案:

答案 0 :(得分:1)

无需调用 newInstance()方法。

Class.forName(driver);

就够了。检查构建路径中是否有所需的jar?


另一个建议

始终尝试使用printStackTrace()

getMessage()个实例

答案 1 :(得分:0)

您不需要实例化驱动程序,只需调用它的静态初始化(例如,通过调用Class.forName),以便它在DriverManager中注册:

System.out.println("OK 1"); //Checkpoint 1

Class.forName(driver); // no .newInstance() !

System.out.println("OK 2"); //Checkpoint 2

con = DriverManager.getConnection(url + db, user, pass);