# Java+DB



## zerni (19. Sep 2007)

Hi Leute!

Ich bin mir nicht sicher, ob es ein solchen Thread schon gab, wenn ja sry dafür konnte nix finden!

Also welche DB würdet ihr für Java bevorzugen?

Theoretisch wäre es ja nicht wirklich wichtig, aber da ich das Programm später verkaufen werde, bin ich mir niht sicher mit welchen Lizenzen ich da in Konflikt gerate.

Mysql ist als Enterprise Edition ja z.b. sau teuer. Aber darf ich ein Programm verkaufen, dass eine Mysql DB braucht? Der Käufer würde diese Software natürlich in seinem Betrieb einsetzen also würde Mysql kommerziell genutzt. Stimmt das so?
Muss ich dann mySQL kaufen und ihm mitverkaufen oder muss ich ihm nur sagen er braucht einen mySQL-Server müsste aber die Enterprise Variante verwenden.

PostreSQL scheint mit von solchen Sorgen befreit aufgrund der BSD Lizenz. Stimmt das?

MS Access dar verwendet werden wenn die Firma ein legales Office hat. Außerdem muss kein ständiges Programm laufen, sondern die DB befindet sich in einer Datei. Stimmt das?

Was benutzt ihr für DBs wenn ihr Offlineanwendungen schreibt oder speichert ihr es in ein xml Filesystem ?

Thx Zerni


----------



## The_S (19. Sep 2007)

Für Offline-Anwendungen in Java finde ich die HSQLDB recht nett  .


----------



## tuxedo (19. Sep 2007)

Servus,
mit MySQL Datenbanken ist das so ne Sache. Auch wenn du den Server nicht selbst mitlieferst und der Kunde sich da selbst einen zulegen muss, hast du immernoch das Problem mit dem MySQL-JDBC-Treiber. Der ist nämlich GPL. Wenn du also dein Programm nicht auch unter die GPL stellen willst solltest du etwas anderes nehmen. POstgres bietet sich hier z.B. an.

Für eine in das Programm intergierte DB wie bereits erwähnt, bietet sich HSQLDB oder auch H2 an.

- Alex


----------



## zerni (19. Sep 2007)

Wenn es mit der performance halbwegs gut aussieht, ist das meine neue DB


----------



## The_S (19. Sep 2007)

Performance-Probleme hatte ich mit HSQLDB bis jetzt noch nicht, aber das musste am besten selbst testen, was dir genügt und was nicht.

Und außerdem kommt es auch größtenteils auf die Abfragen an  .


----------



## *Hendrik (20. Sep 2007)

alex0801 hat gesagt.:
			
		

> Auch wenn du den Server nicht selbst mitlieferst und der Kunde sich da selbst einen zulegen muss, hast du immernoch das Problem mit dem MySQL-JDBC-Treiber. Der ist nämlich GPL.



Wobei es hier auch wieder eine kommerzielle Linzenz für gibt, so dass man sein Programm nicht unter die GPL stellen muss: www.mysql.com/products/connector/j/


----------



## *Hendrik (20. Sep 2007)

Hier nochmal ein Link zum Vergleich von Open-Source DBs: www.heise.de/open/artikel/70100/4. Als PDF

Eventuell solltest Du Dir Gedanken über einen ORM wie z.B. Hibernate machen, so dass Du im Zweifelsfall nicht an eine bestimmte Datenbank gebunden bist.


----------



## tuxedo (21. Sep 2007)

*Hendrik hat gesagt.:
			
		

> alex0801 hat gesagt.:
> 
> 
> 
> ...



Die aber für kleine bis mittlere Projekte preislich oft keine Alternative darstellt ;-)


----------



## FenchelT (21. Sep 2007)

Ich arbeite in der Regel mit MSSQL 2k5 Express


----------



## maki (21. Sep 2007)

Hendrik, kann man dort auch nur den JDBC Treiber kaufen?

Ich hab nur gesehen, dass man dort die gesamte DB (479 €) kaufen kann.


----------



## *Hendrik (21. Sep 2007)

maki hat gesagt.:
			
		

> Hendrik, kann man dort auch nur den JDBC Treiber kaufen?
> 
> Ich hab nur gesehen, dass man dort die gesamte DB (479 €) kaufen kann.



Ich glaube, dafür muss man sich direkt an den OEM-Vertrieb wenden. MySQL Linzenpolitik - Kaufen
Wenn man ins MySQL-Forum Bsp. 1, Bsp. 2 schaut oder bei Google suchst, kann man erkennen, dass das ein weit verbreitetes Problem ist. Seltsam, das MySQL da keine konkreten Zahlen nennt. Vielleicht weiß ja irgendwer hier mehr? 
Ich habe mich auch ne Weile mit der Lizenzpolitik von MySQL beschäftigt, aber so ganz blicke ich da auch noch nicht durch. Wie sieht es z.B. aus, wenn ich mein Produkt ganz ohne JConnector und Server vertreibe und sage, daß der Kunde sich selbst drum kümmern muß - brauche ich oder der Kunde dann eine Lizenz? Oder ich weise ihn darauf hin, dass er dies benötigt und biete ihm an, gegen Bezahlung diese Dinge bei ihm einzurichten?


----------



## tuxedo (21. Sep 2007)

*Hendrik hat gesagt.:
			
		

> Wie sieht es z.B. aus, wenn ich mein Produkt ganz ohne JConnector und Server vertreibe und sage, daß der Kunde sich selbst drum kümmern muß - brauche ich oder der Kunde dann eine Lizenz? Oder ich weise ihn darauf hin, dass er dies benötigt und biete ihm an, gegen Bezahlung diese Dinge bei ihm einzurichten?



Ja, das hab ich mich auch schon gefragt: Einfach das eigene Programm eine offene JDBC Schnittstelle verpassen wo jeder Kunde selbst einen Treiber anstöpseln kann. Sollte gehen. Weil es kann ja niemand verlangen, wenn man eine offenen Standardschnittstelle nach außen hat, sein Programm unter GPL zu stellen, nur weil es prinzipiell möglich ist einen GPL-Treiber anzuflanschen.

Problem ist dann nur mit der Auslieferung: Theoretisch müsste man nur sein Programm ausliefern und die Finger von allem GPL-Zeugs lassen. Aber der Kunde will ja einen "all-round" Service... -> komplizierte Sache.

- Alex


----------

