(仅限 Netbeans)没有找到适合 jdbc:mysql://localhost 的 Driver

(Netbeans only )No suitable Driver found for jdbc:mysql://localhost

我尝试在我的 swing 应用程序中使用以下函数,但我在标题中收到了错误消息。这对我来说很奇怪,因为当 运行 在 Eclipse IDE 上使用完全相同的代码而不是 NetBeans 时,函数执行得非常完美。 我相信我已经正确安装了 driver,因为在服务选项卡中我可以通过创建的 Driver.[=13= 查看和访问 MySQL table 中的数据]

public void insert(String Item, String Size, int Price, String Details){
    try{
        con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/ddApp", "root", "****"); //stars replacing password
        ps = con.prepareStatement("INSERT INTO ddApp.currentTable (item, size, price, description) VALUES (?, ?, ?, ?) ");
        ps.setString(1, Item);
        ps.setString(2, Size);
        ps.setInt(3, Price);
        ps.setString(4, Details);
        ps.executeUpdate(); 
    }catch(Exception ex){
        JOptionPane.showMessageDialog(null, ex.getMessage());
    }
}

JDBC 驱动 'exist' 或不存在(如 JDBC url 'works' 或不存在,取决于驱动程序是否存在),只需在类路径上即可。您是否在 netbeans 的任何其他选项卡中看到它是无关紧要的:当 netbeans 'runs' 您的应用程序时,它只是用一些类路径调用 java.exe

该类路径需要包含 mysql-jdbc.jar 驱动程序。如果是这样,该错误就会消失。如果没有,则会出现该错误。

如果您使用的是像 maven 或 gradle 这样的构建系统,只要您正确设置了依赖项(您已经在 mysql-[=39= 上添加了依赖项],并且它在通常的 'this is needed at compile time and run time' 配置中,这是默认配置),那么只要您设置 IDE 以使用该构建配置作为项目基础,一切都会正常工作。

如果这不是您所做的,请确保 mysql 在类路径中。

它通常不是必须的——在编译过程中你根本不需要它。依赖项(通常是 jar 文件)需要存在 [A] 仅在编译时需要,在运行时不需要(例如:Project Lombok),[B] 仅在 运行 时,不需要编译(那些是仅实现某些服务的插件 API)。 Mysql-jdbc 是其中之一,或者两者都需要 [C](默认值)。 Hibernate、Guava、日志框架——你的大部分依赖都是这种。

所以,这是一个类别[B]。您需要告诉 netbeans 确保 mysql 在命令行上。一个简单的方法是将它视为 [C] - 你的代码可以在没有它的情况下编译,但如果 mysql-jdbc jar 在类路径上,它根本不会受到伤害netbeans 正在编译您的代码。这意味着:无论 netbeans 必须添加 jar 依赖项的机制是什么,请使用它(我不能真正告诉你 - 这取决于你如何设置项目)。