Welche einzelne Datei, einbettbares DBMS gibt es für Java?

Ich möchte ein eingebettetes Datenbankverwaltungssystem in meiner Java-App verwenden, das alle Daten in einer einzigen portablen Datei speichern soll .

Ich weiß bereits, dass H2- und SQLite -Datenbanken meinen Anforderungen zu entsprechen scheinen, aber ich würde gerne sehen, ob es andere Lösungen gibt, die integrierbar sind und die gesamte Datenbank in einer einzigen Datei speichern können.

Ich bestehe nicht auf relationalen Datenbanken, NoSQL- Lösungen sind willkommen. Wenn beispielsweise ElasticSearch oder Solr optimiert werden könnten, um Daten in einer einzigen Datei zu speichern, wäre das auch in Ordnung.

Die Lösung könnte sowohl Open-Source-Software als auch kommerzielle Software umfassen. Wenn es sich um OSS handelt, sollte es eine kommerzielle Nutzung zulassen. Die Lizenzkosten von proprietärer Software sollten nicht höher als 10.000 USD sein und die Lizenz sollte es erlauben, die Datenbank-Engine zusammen mit meiner App für eine unbegrenzte Anzahl von Installationen zu verteilen.

Die Datenbank-Engine sollte lauffähig sein auf:

  1. Windows-, Mac OS- und Linux-Systeme sowie
  2. Android und iOS („nice to have“).
Wenn ich Sie wäre, würde ich mit Sqlite gehen
Sind Sie absolut auf eine einzelne Datei festgelegt und nicht auf einen Ordner mit einer Reihe von Dateien? Da ich für letzteres eine Empfehlung habe...
Nun ja. Aber vielleicht geben Sie Ihre Empfehlung als Kommentar ab - ich bin sicher, dass jemand sie hilfreich finden wird.
Sie könnten daran interessiert sein, Chronicle Map auszuprobieren . Es handelt sich jedoch um eine Schlüsselwertdatenbank, die es jedoch ermöglicht, Daten in einer einzigen Datei zu speichern.

Antworten (1)

Sie können die Firebirdsql- Datenbank verwenden.

Firebird ist eine relationale Datenbank, die viele ANSI-SQL-Standardfunktionen bietet und auf Linux, Windows und einer Vielzahl von Unix-Plattformen läuft. Firebird bietet hervorragende Parallelität, hohe Leistung und leistungsstarke Sprachunterstützung für gespeicherte Prozeduren und Trigger. Es wird seit 1981 unter verschiedenen Namen in Produktionssystemen eingesetzt.

Es hat eine freundliche Lizenz.

In diesem Artikel wird erläutert, wie Sie es im eingebetteten Modus verwenden. (Kurz gesagt – Sie müssen firebird.dll/firebird.so in System PATH platzieren, bevor Sie Ihre Java-App starten)

Vielen Dank. Ich habe zu meiner Delphi-Zeit Interbase/Firebird verwendet. Aber ist es jetzt eine einzelne Datei? Wenn ich mich richtig erinnere, bestanden die Datenbanken aus einer Reihe von Dateien.
Ich denke, es speichert die Datenbank in einer einzigen .fdbDatei.