我无法使用 Java 与 Mariadb 建立连接?

I can't establish connection to Mariadb using Java?

我试试运行这个代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class fun {
    public static void main(String args[]) {
        try {
            Connection connection = DriverManager.getConnection(
                "jdbc:mariadb://localhost:3306/", "root", "bingo");

        }
        catch(SQLException e) {
            e.printStackTrace();
        }
    }
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class fun {
    public static void main(String args[]) {
        try {
            Connection connection = DriverManager.getConnection(
                "jdbc:mariadb://localhost:3306/", "root", "bingo");

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

但是我得到以下错误:

java.sql.SQLException: No suitable driver found for jdbc:mariadb://ocalhost:3306/
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at fun.main(fun.java:8)

我从 mariadb website 下载了 mariadb-java-client-1.4.6-sources.jar 并将其放入我的 jdkdirectory/jre/lib/ext/ 目录 这就是我的 CLASSPATH 变量的保存方式:

C:\Program Files\Java\jdk1.8.0_91\bin;
C:\Program Files\Java\jdk1.8.0_91\jre\lib;
C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext;.;
C:\ProgramFiles\Java\jdk1.8.0_91\jre\lib\ext\mariadb-java-client-1.4.6-sources.jar

Jens 在上面的评论中一语中的:如果源 JAR 包含 .java 文件,您不需要它。你想要字节码;我会查看是否有包含驱动程序的 JAR .class 文件可用。

你不应该在你的 jre/lib/ext 文件夹中放置任何东西。最好在编译和 运行.

时学习如何正确处理 CLASSPATH

大多数 Java 开发人员会在 IDE 中使用一些标准目录格式(例如 Maven)在类似 IntelliJ 的环境中设置项目。使用 Maven 肯定会更容易,但如果您不是,我希望看到一个 /lib 目录,其中包含所有第 3 方 JAR,例如您的 JDBC 驱动程序。所有这些 JAR 都将在编译和 运行 时添加到 CLASSPATH。

专业开发人员会将他们的项目存储在 Subversion、Mercurial 或 Git 等源代码管理系统中。任何检查您的代码的人都应该能够看到所有依赖项。

"No suitable driver" 也可能意味着加载了 JDBC 驱动程序 class,但 URL syntax 不正确。

如果问题是找不到合适的驱动程序;在 link:

下载 jdbc

https://downloads.mariadb.org/connector-java/1.5.4/

选择第二个选项,包类型是jar

在您的连接字符串中,您忘记了数据库名称:

Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/<database>", "root", "bingo");