SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..."

Bernie_r

Mitglied
Servus Javaforum,

ich bin neu hier im Forum und das hier ist mein 1. posting (hoffe, der ist hier richtig platziert). Ich programmiere nur noch zum Spaß aus Langeweile (Rentner halt...).
Ich arbeite hier mit einem Win10-Rechner und nutze für Java-Entwicklung Intellij-Consumer.

Ich versuche mich gerade daran, eine kleine Testanwendung zu erstellen, die auf eine SQLiteDB zugreift.
SQLite + SQLitebrowser habe ich installiert und damit auch eine kleine DB erstellt. Auch den aktuellen jdbc-Treiber habe ich installiert (sqlite-jdbc-3.44.0.0.jar. )
Es gelingt mir aber nicht, mit einer Java-Anwendung auf die DB zuzugreifen. Ich bekomme immer die Fehlermeldung "No suitable driver found...". Im URL-String habe ich die db mit und ohne Pfadangabe und Extension angegeben. Das macht keinen Unterschied.

So sieht der Anfang des Sourcecodes, die Projektstruktur und die Dependecies in Intellij aus. Hat vielleicht jemand eine Idee, was ich da falsch mache?
Danke!
sqlite1.JPG
sqlite3.JPGsqlite4.JPGeine kleine DB erstellt. Einen
 

Anhänge

  • sqlite1.JPG
    sqlite1.JPG
    132,4 KB · Aufrufe: 0

Jw456

Top Contributor
Java:
 String DB_PATH = System.getProperty("user.home") + "/" + "testDB2.db";
 
 connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);

       //  wenn sie zb in deinem  home ordner ist.
 

Bernie_r

Mitglied
Ich habe die DB-Datei versuchsweise in den Projektordner (...\SQLiteTest4) gelegt, dann in den src-Ordner (...\SQLiteTest4/src) und in den ...out/production/SQLiteTest4. Ändert nix an der Fehlermeldung.
 

Bernie_r

Mitglied
Merci! Ich habe die DB-Datei jetzt auch in mein home-Verzeichnis gelegt und deinen Code eingefügt. Leider keine Änderung. Ich vermute mittlerweile, dass der jdbc-Treiber entweder nicht gefunden wird, oder nicht funktioniert....
 

Oneixee5

Top Contributor
Versuche mal den Treiber manuell zu registrieren:
Java:
String sDriverName = "org.sqlite.JDBC";
Class.forName(sDriverName);
und prüfe mögliche Fehlermeldungen.
Um Pfadprobleme zu vermeiden kannst man auch "in memory" als URL testen:
Code:
jdbc:sqlite:memory:myDb?cache=shared
 

Jw456

Top Contributor
Frage wie schaut den deine (Maven) Pom Datei aus ?

Java:
 <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
            <version>3.44.0.0</version>
        </dependency>
 

Bernie_r

Mitglied
Java:
String sDriverName = "org.sqlite.JDBC";
Class.forName(sDriverName);
und prüfe mögliche Fehlermeldungen.
Das liefert mir:
"C:\Program Files\Java\jdk-19\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.3\lib\idea_rt.jar=63341:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.3\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\Daten\Sprachen\Java\SQLiteTest4\out\production\SQLiteTest4;D:\Daten\Sprachen\Java\jdbc\sqlite-jdbc-3.44.0.0.jar Main
C:\Users\Bernhard/testDB2.db3
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.sqlite.JDBC.<clinit>(JDBC.java:26)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:390)
at java.base/java.lang.Class.forName(Class.java:381)
at Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

Java:
jdbc:sqlite:memory:myDb?cache=shared
Das habe ich nicht verstanden. Damit kann IntelliJ nichts anfangen?
 

KonradN

Super-Moderator
Mitarbeiter
Das Problem ist, dass die Klasse vom SQLlite nicht geladen werden kann, weil eine Abhängigkeit nicht geladen werden kann.

Wenn Du eine Abhängigkeit hinzufügst, dann musst Du auch alle Abhängigkeiten von dieser Abhängigkeit hinzu fügen.

In Deinem Fall scheint das slf4j zu sein.

Das ist übrigens ein guter Grund, mit Maven oder Gradle zu arbeiten, da dies automatisch machen. Alternativ kannst Du die Abhängigkeit auch nicht so von Hand hinzu fügen sondern Du kannst IntelliJ sagen, dass die Abhängigkeit vom Maven Repository geladen werden soll. Dann fügt IntelliJ auch die weiteren Abhängigkeiten hinzu.

Um die Abhängigkeiten zu finden, kannst Du einfach mal schauen:
Maven Repository: org.xerial » sqlite-jdbc » 3.44.0.0 (mvnrepository.com)

Da findest Du dann slf4j-api als Abhängigkeit (Compile Dependency). Dem Link kannst Du folgen um dann auch die jar Datei herunter zu laden.

Und da bei slf4j noch eine konkrete Umsetzung benötigt wird, nimm Dir auch gleich noch dies mit:
Maven Repository: org.slf4j » slf4j-simple (mvnrepository.com)
 

Jw456

Top Contributor
Ich nutze Maven nicht, weil ich mich damit nicht auskenne. Ich nutze das IntelliJ Buildsystem.
Fange nochmal neu an und erstelle ein Maven Java Projekt.
Dann binde in die pom datei den code ein.

Das ist ein Standard Projekt nur den dependencies Teil habe ich der pom.xm hinzugefügt.
Und der JDBC ist ansprechbar.

Java:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>untitled4</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
            <version>3.44.0.0</version>
        </dependency>

    </dependencies>


</project>
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
@Bernie_r
Auch wenn ich immer sehr gerne zu Maven rate: Das Tool bringt natürlich auch eine gewisse Komplexität mit und diese musst Du auch weiterhin verstehen. Es werden also auch weitere Probleme auftauchen.

Der große Vorteil ist, dass man eine Textdatei hat, die man gut im Forum teilen kann.

Aber Du wirst eine erhöhte Komplexität haben, weil IntelliJ parallel mit zwei Buildsystemen arbeiten wird: Zum einen Maven und zum anderen nutzt IntelliJ weiterhin seine Modul-/Projektverwaltung. Das kann also auch direkt zu Problemen führen.

Der Umstieg ist zwingend notwendig aus meiner Sicht, wenn Du ernsthaft etwas mit Java machen willst, also z.B. später auch eine Anwendung weiter geben willst oder so. So dies nicht der Fall sein sollte, dann kann es evtl. auch durchaus sinnvoll sein, diesen Schritt einfach sein zu lassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
T SQLite Alternativen zu SQlite, dateibasiert, leicht verschlüsselbar, Nutzerverwaltung Datenbankprogrammierung 21
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
thor_norsk SQLite Fehlermeldung Datenbankprogrammierung 4
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
B SQLite Befehl bauen? Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
thobren Projekt SQlite! Wie kann ich auf auf SQlite Daten zugreifen? Datenbankprogrammierung 4
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D SQLite Collections oder Arrays in SQLite abbilden Datenbankprogrammierung 7
N ORM für Sqlite Datenbankprogrammierung 4
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
N SQLite Datenbankprogrammierung 2
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
X Sqlite Fks Datenbankprogrammierung 4
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
Sam96 SQLite mit JavaFX Datenbankprogrammierung 1
T sqlite select Datenbankprogrammierung 12
V SQLite Performance: 1 Datei mit einzelnen Einträgen gegenüber SQLite Datenbankprogrammierung 7
F Java SQLite Error Datenbankprogrammierung 19
F Sqlite cannot commit Datenbankprogrammierung 2
H SQLite Sqlite Datenbank direkt einbinden. Datenbankprogrammierung 5
U Dom Parser und SQLite füllen Datenbankprogrammierung 5
D SQLite Datenkbank auf WebServer möglich? Datenbankprogrammierung 4
M Datenbankausgabe .jsp per SQLite Datenbankprogrammierung 7
J SQLite Login Datenbank Datenbankprogrammierung 2
M SQLite Einstieg mit SQLite, wohin mit der DLL? Datenbankprogrammierung 7
M SQLite Speicherpfad Datenbankprogrammierung 0
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
G sqlite innerjoin Datenbankprogrammierung 5
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
G SQLite SQLite Abfrage Datenbankprogrammierung 4
F SQLite-Extensions unter Java Datenbankprogrammierung 2
H SQLite mit DefaultTableModel synchronisieren Datenbankprogrammierung 5
D SQLite Statement nimmt keine Namen aus getter-Methoden Datenbankprogrammierung 11
L SQLite fügt nur den ersten Datensatz ein Datenbankprogrammierung 2
S SQLite Ausführbares Jar mit SQLite DB Datenbankprogrammierung 4
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
H SQLite Datenkbank erstellen Datenbankprogrammierung 3
S Abfrage auf SQLite-DB Datenbankprogrammierung 2
Kasoki SQLite SQLite oder doch XML!? Datenbankprogrammierung 2
G SQLite Abfrage, ob in Tabelle X Spalte Y existiert Datenbankprogrammierung 4
G SQLJet (SQLite) - Mehrbenutzerzugriff auf Datenbank handhaben Datenbankprogrammierung 1
S SQLite in JAR Datenbankprogrammierung 8
J SQLite --> Java SDK Datenbankprogrammierung 7
P Datenbank für Java Anwendung wie SQLite ohne Installation Datenbankprogrammierung 4
P Sqlite API für JAVA ? Datenbankprogrammierung 9
feuervogel SQLite unter Linux mit Eclipse einrichten Datenbankprogrammierung 8
K SQLite Datenbankprogrammierung 5
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
D Asynchrone Aufrufe mit jdbc Datenbankprogrammierung 5
Edin JDBC Hilfe Datenbankprogrammierung 2
H JDBC Tabellen ausgeben Datenbankprogrammierung 8
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
J JDBC anschaulich präsentieren Datenbankprogrammierung 2
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
ralfb1105 Oracle JDBC Debugging Datenbankprogrammierung 8
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
B MySQL JDBC Kommentarfilter Datenbankprogrammierung 4
Aruetiise MySQL Name JDBC Drive finden Datenbankprogrammierung 4
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
F MySQL JDBC Problem Datenbankprogrammierung 5
looparda SQLite Active JDBC Abstraktion Datenbankprogrammierung 2
J JDBC SQL Statement mit Parameter Datenbankprogrammierung 7
S JDBC PreparedStatement durchiterieren Datenbankprogrammierung 6
J RESTServie + JDBC + No suitable driver found for jdbc Datenbankprogrammierung 4
KaffeeFan JDBC/ODBC-Bridge entfernt Datenbankprogrammierung 4
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
A Mit JDBC auf postgreSQL Datenbank zugreifen Datenbankprogrammierung 5
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
flenst111 SQL-Statement Wie konfiguriert man JDBC-Connect.richtig, damit es bei riesigen Tabs keinen Speicherüberlauf gibt? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
S JDBC mit Postgres DB connecten Datenbankprogrammierung 3
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
D JDBC - Verständnisfrage Datenbankprogrammierung 2
C Tabelle erstellen mit Apache JDBC-Util Datenbankprogrammierung 1
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
U JDBC prepaird Statements Datenbankprogrammierung 4
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben