2009-11-24 8 views
12

Eine Sache, die ich an .NET liebe, ist die Möglichkeit, eine Datenbankdatei zusammen mit dem Projekt zu haben. Ich weiß, dass dies mit einer SQLite-Datenbank möglich ist, aber hat jemand dies mit einem MySQL-Datenbank-Backend erreicht?Java, MySQL: Gibt es eine Möglichkeit, einen MySQL-Server mit einem Java-Programm einzubetten?

Zum Beispiel, wenn ich ein Java-Programm ausführen, sollte es in der Lage sein, einen eigenen Mini-MySQL-Server zu starten und Daten zu manipulieren. Also im Wesentlichen möchte ich den gleichen Fluss wie mit einer SQLite, aber ich brauche die Kraft von MySQL.

+1

Apache Derby (JavaDB) ist extrem einfach in eine Java-Anwendung einzubetten und es funktioniert qu gut. – ChadNC

+1

Danke .. Ich werde das untersuchen. Ich habe viele Skripte, die derzeit mit MySQL arbeiten. Würdest du zufällig wissen, ob es einfach ist, JavaDB in eine MySQL Datenbank zu konvertieren? – Legend

+1

HSQLDB ist auch einfach, für diese Angelegenheit. Aber die Frage ist über MySQL :) – Bozho

Antwort

15

Eine schnelle Suche zeigt dies: MySQL Connector/MXJ - für die Integration von MySQL-Server in Java-Anwendungen auf der MySQL-Downloads-Seite unter:

http://dev.mysql.com/downloads/

+3

Für alle anderen, die diese Antwort lange nach dem Lesen gelesen haben, stoppte MXJ die Entwicklung mit MySQL Version 5.1.40, Connector/J Version 5.0.11. Siehe http://dev.mysql.com/doc/connector-mxj/en/connector-mxj-versions.html –

+0

@PeterDolberg Gibt es alternative Pakete, die ein MySQL (embedded) erreichen, das während des JUnit-Tests ausgeführt wird? – TheConstructor

6

Es klingt wie Sie eine eingebettete Datenbank mögen. Während MySQL Connector gut aussieht, wird ein separater Serverprozess gestartet. Wenn der Datenbankserver in der Java Virtual Machine ausgeführt werden soll, gibt es mehrere eingebettete Datenbanken für Java.

Die beiden, die ich gesehen am meisten benutzt habe, sind:

  1. Apache Derby/JavaDB
  2. HSQL
+5

Ich hatte schreckliche Erfahrungen mit HSQL für das Testen eines Produktionssystems, das Oracle verwendet. Die Unterschiede im Verhalten führen zu testspezifischen Hacks oder schlechteren, nie geschriebenen Testfällen, weil dies zu viel Mühe machte. Ich denke, es ist wichtiger als alles andere, eine Testumgebung zu schaffen, die so nah wie möglich an der Realität ist. Die Verwendung einiger zusätzlicher Systemressourcen ist normalerweise ein sehr akzeptabler Kompromiss. – oksayt

7

Für die Zukunft jedem einzubetten suchen mysql, es ist ein Dienstprogramm aus die mysql Leute, die das tut http://downloads.mysql.com/archives/c-mxj/

+1

Bitte beachten Sie, dass die Entwicklung von MySQL Connector/MXJ eingestellt wurde. –

+0

Und was ist die Alternative dafür? Gibt es eine Lösung, die frei eingebettet werden kann? –