我花了2天的時間試圖找出爲什麼我的servlet沒有連接到MySQL數據庫。無法通過servlet連接到mysql
我安裝了MySQL並正常工作並使用Eclipse。
每當我嘗試建立連接,我得到一個ClassNotFoundException
爲com.mysql.jdbc.Driver
,它實際上正確導入。我使用的連接器是mysql-connector-java5.1.14
作爲外部jar正確添加,所以一切都很好。這裏是我的代碼:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String dbUrl="jdbc:mysql://localhost:3306/test";
String username="root";
String password="";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(dbUrl);
System.out.println("Connected!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("not connected");
} catch(ClassNotFoundException x){
x.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}
這裏的堆棧跟蹤的一部分:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
我下面從已發佈的Java書的連接步驟。在論壇和教程中,我只看到了相同的代碼,無法弄清楚爲什麼拋出異常。
在沒有運行在服務器上的正常應用程序中,不會拋出異常,並且連接(以完全相同的方式)成功。
你有什麼建議嗎?
啊! Good ol'ClassNotFound。您可能需要將MySQL jar複製到您的應用程序服務器的lib目錄中。 – Nishant 2011-01-29 07:36:43