Java: Fehlende Datenbank-Fehler
Ich erhalte die folgende Fehlermeldung:
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: apartments)
In der Realität, die Tabelle existiert. Folgendes ist mein code:
try {
//load the sqlite-JDBC driver using the current class loader
Class.forName("org.sqlite.JDBC");
Connection connection = null;
//create a database connection
connection = DriverManager.getConnection("jdbc:sqlite:/Path/To/apartments.db");
System.out.println(connection.getMetaData());
Statement statement = connection.createStatement();
statement.setQueryTimeout(30);
ResultSet rs = statement.executeQuery("select * from apartments");
while(rs.next()) {
//read the result set
System.out.println("TEXT = " + rs.getString("display_text"));
System.out.println("X1 = " + rs.getInt("x1"));
}
} catch (Exception ex) {
Logger.getLogger(MouseEventDemo.class.getName()).log(Level.SEVERE, null, ex);
}
Es sagt SQL-Fehler oder fehlende Datenbank , und ich denke, es ist nicht Tabelle Problem
Wie um zu überprüfen, es wird nicht ein Pfad Problem?
Ich glaube, dass Sie sind verwirrend der name der Datenbank mit der Tabelle Namen. Den Namen Ihrer Datenbank ist apartments und Tabelle der name der gleiche ist?
Ich denke, es ist ein Pfad-Problem. Versuchen Sie, geben Sie den vollständigen Pfad in
mein db-name Haupt - , ich bin nicht finden, die Möglichkeit zu erwähnen, DB-name. Es ist SQLIte
Wie um zu überprüfen, es wird nicht ein Pfad Problem?
Ich glaube, dass Sie sind verwirrend der name der Datenbank mit der Tabelle Namen. Den Namen Ihrer Datenbank ist apartments und Tabelle der name der gleiche ist?
Ich denke, es ist ein Pfad-Problem. Versuchen Sie, geben Sie den vollständigen Pfad in
getConnection()
mein db-name Haupt - , ich bin nicht finden, die Möglichkeit zu erwähnen, DB-name. Es ist SQLIte
InformationsquelleAutor Volatil3 | 2013-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden können, dies kann Ihnen helfen, um den richtigen Pfad zu deiner Datenbank
, Wie Sie Database-Dateien
Hier ist ein Beispiel, um eine Datei auszuwählen C:\work\mydatabase.db (in Windows)
UNIX (Linux, Mac OS X, etc) die Datei /home/leo/Arbeit/mydatabase.db
Wie Sie Memory-Datenbanken
SQLite unterstützt den auf-memory-Datenbank-management, die keine Datenbank-Dateien. Die Verwendung einer Hauptspeicher-Datenbank in Ihre Java-code, mit der Sie die Datenbank-Verbindung wie folgt:
Diese können auch helfen,
davon ausgegangen, dass sich die apartments.db ist in Projekt-root-Verzeichnis
Connection Verbindung = DriverManager.getConnection("jdbc:sqlite:/home/leo/Arbeit/mydatabase.db"); funktioniert nicht für Sie? dann versuchen, Sie zu kopieren & fügen Sie Ihre Datenbank in Ihr Projekt-root, und bekommen es mit getConnection("jdbc:sqlite:"+getClass().getResource("Wohnungen.db"));
Es ist Locker in build/Klasse. siehe: java.sql.SQLException: Pfad auf " file:/xxxx/xx/demo/build/classes/events/apartments.db': '/xxxx/xx/demo/Datei:' existiert nicht
Ich habe die Datei in alle Unterordner und root-Ordner, können Sie abholen von irgendwo, aber keiner 🙂
wenn du es im root-versuchen Sie dann, diesen Aufruf getConnection("jdbc:sqlite:"+getClass().getResource("Wohnungen.db")); genau, ohne sonst nichts
InformationsquelleAutor Festus Tamakloe
Ändern Sie Die Erweiterung
.db
zu.sqlite
Danke!!! Schließlich wurde das Problem behoben, ich habe versucht zu lösen, für Stunden
InformationsquelleAutor Azad
Ich hatte das gleiche problem beim ausführen meiner unit-tests von Robolectric auf Android-Plattform. Das problem stellte sich heraus, dass in Bezug auf etwas zu tun mit der Verwendung einer singleton-Muster auf mein DatabaseHelper Klasse wurde wiederverwendet, indem alle meine unit-tests, wie es war, ein statisches Objekt erstellt, indem eine Basisklasse für alle meine unit-tests.
In meinem Fall das Update war um die statische variable Zwischenspeichern, die singleton-Instanz innerhalb des DatabaseHelper auf null nach jedem test. SO die base-Klasse sieht in etwa so für mich:
InformationsquelleAutor Farrukh Najmi