【问题标题】:Struggling with a Java JDBC:sqlite connection using Intellij [duplicate]在 Java JDBC 中苦苦挣扎:使用 Intellij 的 sqlite 连接 [重复]
【发布时间】:2019-07-25 04:47:03
【问题描述】:

我的完整项目在 Github.com/DSkilton

我已经尝试了几十种方法来让它工作,我已经阅读了类路径,使用 Class.forName() 而不是使用它,Xerials JDBC instructions 建议使用 / 而不是转义 \ 作为路径字符串.我已经阅读了一些关于如何设置的 Oracle 建议、Stackoverflow 和 SQlites tutorial。我真的尝试过对此进行研究,但仍然一无所获!

在我的 src 文件夹中有以下文件夹:controller、images、lib、model、sample 和 view。

在控制器文件夹中是databaseConnect.java,在lib文件夹中是jdbc-api-1.4.jar。

在我的 databaseConnect 文件中,我有以下内容:

public static void Connection() {

    final String connectionUrl = "jdbc:sqlite:D:\\Users\\IdeaProject\\modus\\src\\model\\modus.db";

    try {
        Connection con = DriverManager.getConnection(connectionUrl);
        System.out.println("Connected");
        //while(returnStatement.next()) {
        //System.out.println("rs.getString");
        //}

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

我得到的错误是:

java.sql.SQLException: No suitable driver found for jdbc:sqlite:D:\\Users\\Duncan Skilton\\IdeaProject\\modus\\src\\model\\modus.db
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at controller.databaseConnect.Connection(databaseConnect.java:16)
at sample.Main.main(Main.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)

进程以退出代码 -1 结束

您可以提出任何建议,我们将不胜感激!

【问题讨论】:

    标签: java sql xml database fxml


    【解决方案1】:

    您的 dbms 缺少 Driver。使用 maven 时将其添加到您的 pom.xml:

    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.25.2</version>
    </dependency>
    

    或者这个

    implementation 'org.xerial:sqlite-jdbc:3.25.2'
    

    使用 gradle 时到您的 build.gradle。

    P.S.:我也不认为 url 是正确的。您没有将 url 传递到驱动器上的文件,请在 Internet 上找到一些 sqlite 的 url 示例。

    【讨论】:

    • 太棒了,谢谢!我会看看将 Gradle 添加到我的项目中 :) 我会回来报告
    猜你喜欢
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多