我的完整项目在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完成的过程
您可以提出的任何建议将不胜感激!
答案 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的示例。