Ich bin von der Sauberkeit angezogen, die eine einzelne Dateidatenbank bietet. Welche Treiber- / Connector-Bibliothek gibt es, um SQLite mit Java zu verbinden und zu verwenden?
Ich habe eine Wrapper-Bibliothek entdeckt, http://www.ch-werner.de/javasqlite , aber gibt es noch andere prominente Projekte?
Antworten:
Das Wiki listet einige weitere Wrapper auf:
quelle
Ich habe Ihre Frage bei der Suche nach Informationen mit SQLite und Java gefunden. Ich dachte nur, ich würde meine Antwort hinzufügen, die ich auch in meinem Blog gepostet habe .
Ich programmiere jetzt schon eine Weile in Java. Ich habe auch von SQLite gewusst, es aber nie verwendet ... Nun, ich habe es über andere Anwendungen verwendet, aber nie in einer App, die ich codiert habe. Also brauchte ich es diese Woche für ein Projekt und es ist so einfach zu bedienen!
Ich habe einen Java JDBC-Treiber für SQLite gefunden. Fügen Sie einfach die JAR-Datei zu Ihrem Klassenpfad hinzu und importieren Sie java.sql. *
Seine Test-App erstellt eine Datenbankdatei, sendet einige SQL-Befehle zum Erstellen einer Tabelle, speichert einige Daten in der Tabelle und liest sie zurück und zeigt sie auf der Konsole an. Es wird die erstellen test.db Datei im Stammverzeichnis des Projektes. Sie können dieses Beispiel mit ausführen
java -cp .:sqlitejdbc-v056.jar Test
.quelle
Ich verstehe, dass Sie speziell nach SQLite gefragt haben, aber vielleicht passt die HSQL-Datenbank besser zu Java. Es ist in Java selbst geschrieben, läuft in der JVM, unterstützt In-Memory-Tabellen usw. und all diese Funktionen machen es für Prototyping und Unit-Tests gut verwendbar.
quelle
Das David Crawshaw-Projekt (sqlitejdbc-v056.jar) scheint veraltet zu sein und das letzte Update war der 20. Juni 2009, Quelle hier
Ich würde Xerials Gabel von Crawshaw SQLite Wrapper empfehlen . Ich habe sqlitejdbc-v056.jar problemlos durch die Xerials-Datei sqlite-jdbc-3.7.2.jar ersetzt.
Verwendet die gleiche Syntax wie in Bernies Antwort und ist viel schneller und mit der neuesten SQLite-Bibliothek.
Was unterscheidet sich von Zentus SQLite JDBC?
BEARBEITEN : Wie üblich, wenn Sie etwas aktualisieren, wird es an einer dunklen Stelle in Ihrem Code Probleme geben (ist mir passiert). Test Test Test =)
quelle
sqlite-jdbc
Projekt ist großartig, aber beachten Sie, dass es Apache-lizenziert ist . Daher müssen Sie eine Zuordnung vornehmen, wenn Sie es verwenden, unabhängig davon, ob Ihr Code FOSS oder proprietär ist.Es gibt ein neues Projekt SQLJet , das eine reine Java-Implementierung von SQLite ist. Es unterstützt noch nicht alle SQLite-Funktionen, ist jedoch möglicherweise eine sehr gute Option für einige der Java-Projekte, die mit SQLite-Datenbanken arbeiten.
quelle
Bernies Beitrag ist sehr hilfreich. Konnte nicht abstimmen (habe nicht genug Ruf :(). Aber es hat sehr geholfen. Nur um es noch einmal zu wiederholen!
http://www.zentus.com/sqlitejdbc/
Hier finden Sie die neueste SQLite JDBC-JAR. Fügen Sie einfach das Glas in Ihren Klassenpfad ein und Sie sind fertig! :) Sie können Bernies Beispielcode ausführen, um zu testen, ob alles in Ordnung ist.
http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.sqlite.org/lang.html
Hier finden Sie Hilfe zur SQL-Syntax für SQLite. Prost auf SQLite :)
quelle
Wenn Sie den Code kompilieren und ausführen, sollten Sie den Wert für die Klassenpfadoptionen festlegen. Genau wie folgt:
Achten Sie bitte auf "." und die Sparate ";" (win, das Linux ist ":")
quelle
sqlitejdbc-Code kann mit git von https://github.com/crawshaw/sqlitejdbc heruntergeladen werden .
Hinweis: Für das Makefile ist eine Curl-Binärdatei erforderlich, um SQLite-Bibliotheken / -Deps herunterzuladen.
quelle
Der Beispielcode führt zu einem Speicherverlust in Tomcat (nach dem Aufheben der Bereitstellung der Webanwendung verbleibt der Klassenlader weiterhin im Speicher), was
outofmemory
schließlich zu einem Speicherverlust führen kann . Die Lösung besteht darin, sqlite-jdbc-3.7.8.jar zu verwenden . Es ist ein Schnappschuss, daher erscheint er noch nicht für Maven.quelle
Tippfehler:
java -cp .:sqlitejdbc-v056.jar Test
sollte sein:
java -cp .:sqlitejdbc-v056.jar; Test
Beachten Sie das Semikolon nach ".jar". Ich hoffe, das hilft den Menschen und kann viel Ärger verursachen
quelle
.:xxx.jar;
macht es also keinen Sinn. Außerdem müssen Sie den Paketnamen für die Testklasse angeben.