Борьба с соединением Java JDBC: sqlite с использованием Intellij

Мой полный проект находится на Github.com/DSkilton.

Я пробовал десятки способов заставить это работать, я читал о путях к классам, используя Class.forName() и не используя его, Xerials JDBC инструкции, который предлагает использовать / вместо экранирования \ для строки пути. Я прочитал некоторые предложения Oracle, Stackoverflow и SQlites руководство о том, как настроить. У меня действительно пытался, чтобы изучить это, но я все еще ничего не понимаю!

Внутри моей папки src находятся следующие папки: контроллер, изображения, библиотека, модель, образец и представление.

В папке контроллера находится 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

Все, что вы можете предложить, будет оценено по достоинству!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
883
1

Ответы 1

Вам не хватает Driver для ваших dbms. Добавьте это в свой pom.xml при использовании maven:

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

или это

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

к вашему build.gradle при использовании gradle.

P.S. Я тоже не думаю, что адрес правильный. Вы не передаете URL-адрес файла на свой диск, найдите несколько примеров URL-адресов для sqlite в Интернете.

Блестяще, спасибо! Я посмотрю, как добавить Gradle в свой проект :) Я отчитаюсь

Duncan Skilton 04.03.2019 20:43

Другие вопросы по теме