Java 无法通过servlet连接到mysql

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

我花了两天时间试图弄明白为什么我的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书籍中的连接步骤。在论坛和教程中,我只看到了相同的代码,无法理解引发异常的原因

在不在服务器上运行的普通应用程序上,不会引发异常,连接也不会以完全相同的方式成功


您有什么建议吗?

将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目录。