【发布时间】:2011-06-17 15:56:12
【问题描述】:
我花了 2 天时间试图弄清楚为什么我的 servlet 无法连接到 MySQL 数据库。
我已经安装了 MySQL 并且工作正常,还有 Eclipse。
每当我尝试建立连接时,我都会为com.mysql.jdbc.Driver 得到一个ClassNotFoundException,它实际上是正确导入的。我正在使用的连接器是 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 书籍中的连接步骤进行操作。在论坛和教程中,我只是看到相同的代码,无法弄清楚为什么会抛出该异常。
在不在服务器上运行的普通应用程序上,不会引发异常并且连接(以完全相同的方式)成功。
你有什么建议吗?
【问题讨论】:
-
啊!好老'ClassNotFound。您可能需要将 MySQL jar 复制到应用服务器的
lib目录。
标签: java mysql eclipse servlets jar