使用Intellij处理Java JDBC:sqlite连接

时间:2019-03-03 20:55:08

标签: java sqlite fxml

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

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

在我的src文件夹中有以下文件夹:控制器,图像,库,模型,示例和视图。

在controller文件夹中是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完成的过程

您可以提出的任何建议将不胜感激!

1 个答案:

答案 0 :(得分: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传递到驱动器上的文件中,而是在Internet上找到一些sqlite URL的示例。