Netbeans 中的 Maven Web 项目正在抛出 java.sql.SQLException:没有为 jdbc:mysql://localhost:3306/ 找到合适的驱动程序

Posted

技术标签:

【中文标题】Netbeans 中的 Maven Web 项目正在抛出 java.sql.SQLException:没有为 jdbc:mysql://localhost:3306/ 找到合适的驱动程序【英文标题】:Maven web project in Netbeans is throwing java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ 【发布时间】:2016-05-03 20:52:18 【问题描述】:

我在将 Maven Web 项目连接到 Netbeans 中的 mysql 数据库时遇到问题。每次我尝试连接时都会抛出

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

我已将 mysql-connector-java 版本 5.1.38 依赖项添加到 pom.xml 文件。然后我将 mysql-connector-java-5.1.38-bin.jar 添加到 $CATALINA_HOME /lib 文件夹。 WEB-INF/lib 文件夹包含相同的 .jar 文件。如果我想做

Class.forName("com.mysql.jdbc.Driver");

我的项目正在毫无例外地连接到数据库。

下面我的 Servlet 方法连接 MySQL 数据库

public void connectToDB()


    try
        String URL = "jdbc:mysql://localhost:3306/Store";
        String username = "root";
        String password = "sesame";

        Connection connection = DriverManager.getConnection(URL, username, password);
        System.out.println("DB has been connected!!!!!!!!!!!!!!!!!!");
    catch(SQLException ex)
        for(Throwable t : ex)
            t.printStackTrace();
        
    

URL 变量(端口号和主机名)正确。问题是 JDBC 驱动程序根本没有自动加载。

我在这里搜索了大部分问题,但没有发现任何有用的信息。

【问题讨论】:

【参考方案1】:

你也应该添加这部分

public void connectToDB()


    try
        String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        String URL = "jdbc:mysql://localhost:3306/Store";
        String username = "root";
        String password = "sesame";

        Class.forName(JDBC_DRIVER);
        Connection connection = DriverManager.getConnection(URL, username, password);
        System.out.println("DB has been connected!!!!!!!!!!!!!!!!!!");
    catch(SQLException ex)
        for(Throwable t : ex)
            t.printStackTrace();
        
    

【讨论】:

【参考方案2】:

在我的例子中,Mac 和 Catalina OS、mysql-connector-java-8.0.19.jar 和使用 Maven 的 NetBeans 项目,我需要为 com.mysql.cj.jdbc.Driver 而不是 com.mysql.jdbc.Driver 加载类。 注意“cj”。

Class.forName("com.mysql.cj.jdbc.Driver");

必须在 SQL 驱动程序连接请求之前。 我不完全知道为什么,因为我的理解是在 JDBC 4.0 之后,不需要预加载 SQL 驱动程序类。

【讨论】:

请将我删除的提问部分移到评论中。您可以对自己的帖子发表评论。

以上是关于Netbeans 中的 Maven Web 项目正在抛出 java.sql.SQLException:没有为 jdbc:mysql://localhost:3306/ 找到合适的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 maven 编译 netbeans Web 服务项目时出错

如何使用 GitHub 中的 Maven 从 NetBeans 项目迁移到 Java CI?

发布到maven Web项目中的JSP文件时出现404 Not Found错误

将 maven 项目导入 netbeans

在 NetBeans 中运行 Maven 目标的按钮

NetBeans 无法在 Maven Web 应用程序上运行 package.json