You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft Fabric模组开发出现JDBC No suitable driver found报错如何解决?

编辑(已修复)

我找到该问题的解决方法了,该问题显然和我使用gradle构建项目(这是FabricMC模组开发的标准构建方式)有关。因此,我需要将MySQL Connector/J添加到build.gradle文件的依赖项中。完成该操作后我重新构建项目,SQL连接就正常运行了!

后续我不需要再将它作为库或依赖项额外添加,也不需要使用Class.forName()加载驱动。

dependencies {
    // To change the versions see the gradle.properties file
    minecraft "com.mojang:minecraft:${project.minecraft_version}"
    mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
    modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

    // Fabric API. This is technically optional, but you probably want it anyway.
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
    
    implementation 'mysql:mysql-connector-java:8.0.27'
}
原问题描述

我正在Intellij Idea中使用Fabric API开发Minecraft模组,需要与部署在另一台运行DirectAdmin的服务器上的数据库通信。

  • 我尝试了很多其他问题中给出的解决方案,比如提前加载驱动、安装Database Manager插件,但都没能解决问题。
  • 我还反复确认了数据库连接路径是否正确,确认路径无误。

补充说明:我使用的是Java 16版本

我尝试建立数据库连接时一直抛出相同错误:java.sql.SQLException: No suitable driver found for jdbc
[报错截图]

我已经引入了mysql-connector-java-8.0.27.jar库,但仍然报错。
[库引入截图]

之后我还将它添加为依赖项,问题依旧没有解决。
[依赖添加截图]

我是不是遗漏了什么?我查阅了大量相关帖子,但没有一个解决方案有效。我怀疑是不是还需要在数据库所在的服务器上添加某种库,但我不知道该如何操作。

以下是我用于建立连接的代码,我在主类中通过try/catch调用connect()方法:

package nl.egelblad.tutorial.sql;

import java.sql.*;

public class MySQL {
    private String host = "185.102.34.56";
    private String port = "3306";
    private String database = "my_db";
    private String username = "db_username";
    private String password = "db_password";
    private Connection connection;

    public boolean isConnected() {
        return connection != null;
    }

    public void connect() throws ClassNotFoundException, SQLException {
        if (!isConnected()) {
            connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?useSSL=false&autoReconnect=true", username, password);
        }
    }

    public void disconnect() {
        if (isConnected()) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public Connection getConnection() {
        return connection;
    }
}

[代码截图1]
[代码截图2]


内容的提问来源于stack exchange,提问作者Knoquer Bonk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:06:03