Java 无法通过servlet连接到mysql
我花了两天时间试图弄明白为什么我的servlet没有连接到MySQL数据库 我已经安装了MySQL,并且可以正常运行和Eclipse 无论何时尝试建立连接,都会得到com.mysql.jdbc.Driver的ClassNotFoundException,它实际上已正确导入。我使用的连接器是mysql-connector-java5.1.14,作为一个外部jar正确添加,所以一切看起来都很好。这是我的密码:Java 无法通过servlet连接到mysql,java,mysql,eclipse,servlets,jar,Java,Mysql,Eclipse,Servlets,Jar,我花了两天时间试图弄明白为什么我的servlet没有连接到MySQL数据库 我已经安装了MySQL,并且可以正常运行和Eclipse 无论何时尝试建立连接,都会得到com.mysql.jdbc.Driver的ClassNotFoundException,它实际上已正确导入。我使用的连接器是mysql-connector-java5.1.14,作为一个外部jar正确添加,所以一切看起来都很好。这是我的密码: protected void doPost(HttpServletRequest req
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书籍中的连接步骤。在论坛和教程中,我只看到了相同的代码,无法理解引发异常的原因
在不在服务器上运行的普通应用程序上,不会引发异常,连接也不会以完全相同的方式成功
您有什么建议吗?将mysql-connector-x.jar放在WEB-INF/lib中将mysql-connector-x.jar放在WEB-INF/lib中两种可能的解决方案: 1当你发动战争时,司机在里面吗?您可以解压它,将.war文件重命名为.zip,然后看一看——它应该在/WEB-INF/lib下。Eclipse可能不会将其导出到战争中 2如果您使用的是Tomcat,您是否将其放入Tomcat lib目录?如果不是,您将部署到哪个servlet容器中
我注意到的一点是,有时候Java不喜欢类中有空格。您应该能够通过将其包含在两种解决方案中的任何一种中来避免它,从而使其成为一条相对路径,但您可以尝试消除该空间,看看它是否有帮助。两种可能的解决方案: 1当你发动战争时,司机在里面吗?您可以解压它,将.war文件重命名为.zip,然后看一看——它应该在/WEB-INF/lib下。Eclipse可能不会将其导出到战争中 2如果您使用的是Tomcat,您是否将其放入Tomcat lib目录?如果不是,您将部署到哪个servlet容器中
我注意到的一点是,有时候Java不喜欢类中有空格。您应该能够通过将其包含在两个解决方案中的任何一个中来避免它,从而使其成为一条相对路径,但您可以尝试消除空间,看看它是否有帮助。ah!找不到好的老同学。您可能需要将MySQL jar复制到应用服务器的lib目录。啊!找不到好的老同学。您可能需要将MySQL jar复制到应用服务器的lib目录。