即使我已将其添加到类路径中,也找不到JBDC驱动程序

时间:2015-10-17 09:28:14

标签: java mysql eclipse

我的动态网络项目出了问题。这是我的第一个项目,我想做一些相当简单的事情。我想从我的数据库中打印出数据。我使用MYSQL并建立了一个数据库。我想使用以下代码进行连接:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    // Set the MIME type for the response message
      response.setContentType("text/html");
      // Get a output writer to write the response message into the network socket
      PrintWriter out = response.getWriter();

      Connection conn = null;
      Statement stmt = null;
      try {
         // Step 1: Create a database "Connection" object
         // For MySQL
         conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/webshop", "root", "admin");  // <<== Check


      } catch (SQLException ex) {
         ex.printStackTrace();
      }
    }

我收到的消息与其他帖子已经提到的相同:

    java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/webshop

我从其他帖子中了解到必须将连接器添加到类路径中。我通过使用Eclipse的属性向导(我使用的IDE)完成了这项工作。这没用!我已将 mysql-connector-java-5.1.37 添加到类路径中。我也尝试将它直接添加到WEB-INF / lib文件夹,唉没有成功。我尝试的最后一件事,也是失败的,是将它添加到tomcat7库。

上述所有内容似乎都无效。我究竟做错了什么?我在其他帖子中找不到工作建议。

4 个答案:

答案 0 :(得分:0)

您应该使用适当的库。请参阅说明how to install Connector-J

  

您可以使用二进制文件或者安装Connector / J软件包   来源分配。二进制分发提供了最简单的方法   安装方法;源代码分发允许您自定义   你的安装进一步。使用任一解决方案,您手动添加   连接器/ J位置到您的Java CLASSPATH

     

如果您正在开发servlet或JSP,那么您的应用程序服务器就是   符合J2EE,你可以把驱动程序   mysql-connector-java-version-bin.jar中的WEB-INF/lib个文件   您的webapp的子目录,因为这是第三个的标准位置   J2EE Web应用程序中的派对类库。

答案 1 :(得分:0)

正如之前的答案中所述:   - 考虑将驱动程序JAR添加到WEB-INF / lib文件夹中   - 或者,如果您计划在多个应用程序中使用它,请将其部署在tomcat的lib文件夹下 - 使用父加载程序将其提供给您的应用程序的类加载器   - 如果使用JDBC 3或更早版本,您可以在servlet的init()方法中调用loadClass(&#34; com.mysql.jdbc.Driver&#34;),例如

也许更好的方法是注入绑定到MySql数据库的DataSource对象。检查@Resource注释,例如

答案 2 :(得分:0)

感谢所有精彩的提示和帮助!我在这里找到的大多数选项,我都试过了。所以对我来说,特别是我的设置似乎有些不对劲。这不是一般性问题。

我已经通过简单的重新开始解决了这个问题。删除eclipse,tomcat服务器,一切......然后再安装所有必要的东西。这次它首先尝试了!我将连接器(仅)添加到tomcat服务器的/ lib中。

我想问题可能是我在项目的某个地方有多个连接器?无论如何,重新开始解决我的问题。我知道这不是一个很好的干净修复,但它确实有效。

再次感谢您的努力和时间!

答案 3 :(得分:0)

正如this page中指出的那样,你应该:

  1. this page下载mysql连接器jar文件。
  2. 将下载的jar文件放入lib文件夹。
  3. 在您的代码之前,您应该执行load mysql deriver这样的事情:

    的Class.forName( “com.mysql.jdbc.Driver”);