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

时间:2016-06-30 12:16:45

标签: java jdbc mariadb

我尝试运行此代码:

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

2 个答案:

答案 0 :(得分:1)

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

你永远不应该在你的jre / lib / ext文件夹中放任何东西。在编译和运行时,最好学习如何正确处理CLASSPATH。

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

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

“没有合适的驱动程序”也可能意味着已加载JDBC驱动程序类,但URL syntax不正确。

答案 1 :(得分:1)

如果问题不合适,可以找到驱动程序;在此链接中下载jdbc:

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

Link to download mariadb jdbc connector

enter image description here

选择包类型为jar的第二个选项

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

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