Welche der folgenden Datenbanken eignet sich am besten für eine große Desktop-Anwendung: Firebird, JavaDB, hsqldb? Ich brauche Leistung, einfach zu bedienen und völlig kostenlose Lizenz.Was ist die beste Datenbank für eine Java-Desktop-Anwendung
Antwort
Wenn Sie sich für eine integrierbare Datenbank suchen, wäre meine Empfehlung H2 sein (steht für Hypersonic 2, (re) vom Autor von HSQLDB geschrieben). Siehe detailed comparison of features und performances.
Die Verwendung einer 100% Java-Datenbank würde es ermöglichen, es im selben Prozess auszuführen und IMO die Dinge viel einfacher zu machen.
H2 sieht in der Tat sehr gut aus. – BalusC
@BalusC Ich habe hsqldb und javadb zugunsten von H2 fallen lassen, ich liebe es einfach. Und sein [Kompatibilitätsmodus] (http://www.h2database.com/html/features.html#compatibility) (er kann sich "benehmen", wie Oracle, DB2, etc) ist wunderbar zum Testen. –
Hey, das ist nett. Ich muss zugeben, dass ich nicht wusste, dass es für Hypersonic 2 steht. Das wird früher oder später ein neues Spielzeug sein :) – BalusC
Abhängig von Anforderungen und Datenmenge. Meine letzte Wahl war MySQL und es war sehr komfortabel (Swing app)
mich Sie auf Postgres Lassen Sie empfehlen (http://www.postgresql.org/ ), die eine der besten Freeware-DB ist, ich weiß.
Ich hatte eine Erfahrung mit dieser Datenbank in meinem vorherigen Projekt, in dem wir ~ 20 Tabellen im Schema, die größte Tabelle hatte ~ 100.000 Zeilen und die Menge der Gesamtdaten war nicht so groß.
Dieses Projekt läuft seit mehr als 2 Jahren in Produktion, und es gab keine besonderen Probleme damit.
Shay
Wenn er eine Desktop-Anwendung versendet, ist es wahrscheinlich vorteilhaft, Benutzer nicht eine separate Datenbank-Anwendung zu installieren, daher hat das OP einen Vorschlag gemacht JavaDB und hsqldb, die beide in Java-Anwendungen eingebettet werden können. Ich bin mir nicht sicher, wie Firebird da reinpasst. Dies ist natürlich keine Ausgrabung von Postgres, die meiner Meinung nach die offensichtliche Wahl ist, wenn eine Datenbank benötigt wird: Desktop oder Server. – Geoff
Ich denke, Sie werden besser mit einer einbettbaren Datenbank dafür sein. HSQLDB oder H2 funktionieren genauso wie SQLite. SQLite ist außerhalb der Java-Welt ziemlich populär (es wird zum Beispiel vom Mozilla-Projekt verwendet). Ich bin mit JavaDB nicht vertraut, daher kann ich nicht mit seinen Fähigkeiten sprechen.
SQLite ist bekannt dafür, ziemlich schnell zu sein.
Ich würde für ein DBMS gehen, das ist nicht Java-spezifisch. Vielleicht möchten Sie Ihre Daten eines Tages mit einer C++ - oder .NET-Anwendung teilen. Wenn es kein Client/Server sein muss, betrachten Sie SQLite oder H2. Wenn dies der Fall ist, dann betrachten Sie Postgres. Alle haben ODBC-Treiber und/oder Treiber für bestimmte Sprachen außer Java.
Firebird ist sehr gut Datenbank speziell für Desktop-Anwendung
Es gibt gute Java-Treiber.
Speziell für "große Desktop-Anwendungen". Firebird skaliert auf Hunderte von Gigabytes und darüber hinaus. –
Meine Empfehlung ist H2. Ich habe kürzlich eine db (von MS SQL Server) migriert, darunter 2 größere Tabellen mit jeweils mehr als 2 Millionen Zeilen. Zuerst versuchte ich Derby und hatte Probleme (nicht nur Leistung) - dann wechselte ich zu H2 und migrierte alles erfolgreich.
Diese Frage hat auch einige gute Diskussionen: http://stackoverflow.com/questions/41233/java-and-sqlite –
Was möchten Sie in der Datenbank speichern? Objekte? XML? primitive Typen? – Catchwa
+1 für BalusC, blasen Sie müssen die Antwort, die Sie gerne für Fragen, die Sie fragen, akzeptieren, sonst werden die Leute nicht mehr beantworten wollen. – dimo414