MySql Tabellen in Java Programmen

Hallo

Wenn man eine Anwenung hat welche mit MySql Db arbeitet. Muss der Anwender nicht Entwickler also der Endnutzer auf seinem Computer irgendwas zusätzliches ausser JRE8 installiert haben?
Kann der Kunde einfach die Jar der Anwenung bekommen und das Programm diriekt starten obwohl es intern aus einer MySql DB datensätze liest und schreibt?

lg

eine MySQL DB sollte installiert sein :wink:
oder wenn Netzwerk dann entsprechende Verbindung erlaubt,

aber sonst sehe ich keine Probleme, JDK kompliliert Klassen, Ausführung JRE,
ob MySQL-Anfrage, Webseiten-Abruf, Datei einlesen oder intern 2+2 zu rechnen, alles Java-Befehle

Eine Datenbank muss in den meisten Fällen aus einer jar-Datei heraus zuerst auf dem Zielrechner installiert werden, da wirst Du codetechnisch also schon tätig werden müssen. Es gibt Datenbanken, auf die man im sog. “Embedded”-Mode aus einem jar-File heraus lesend zugreifen kann, z.B.funktioniert das mit der Java/Derby-DB, die im Java-JDK (nicht in der JRE!) enthalten ist. Aber für Schreibzugriff muss sich die Datenbank irgendwo außerhalb der jar befinden. Ansonsten benötigst Du nur den MySQL-JDBC Treiber, um loszulegen.
Auf Deutsch: Der Endanwender benötigt gar nichts, Du benötigst den Treiber und fertig.

Moment… Wenn die mySql Datenbank über das Internet aus erreichbar ist, dann benötigt jeder Benutzer diesen speziellen Treiber, ich hab es mal getestet/ausprobiert. Standard jre lib api umfasst das nicht, mWn, es muss ja bestimmte Treiber/Klassen nachgeladen werden, aber ist nur eine Zeile.

Stimmt das was ich sage? ,

ein Treiber ist ein Jar, keine Zeile, insofern mit Zweifeln belegt ob das stimmt,
Installation des MySQL-Treibers einer Zeile? Verwendung mit einer Zeile konfigurieren?

ob der Treiber in ein übergeordnetes Jar mit hineinkann…
Fat Jar Eclipse Plug-In

Ich möchte einfach Kunden in eine DB Tabelle eintragen lassen, Netzwerke sind nicht im Spiel. Die Wahl auf MySql ist rein als Übung zu verstehen. Wenn ich jetzt also eine Gui habe wo ich Name Vorname eintrage und mit einem Button diese Daten in eine DB Tabelle eintragen lasse, damit ich später in einer Tabellen Ansicht diese Daten wieder betrachten kann, dann braucht der Benutzer des Programms nichts weiter installieren als das JRE 8 ?

Doch, den MySQL Server

Warum nimmst Du nicht eine Embedded-DB? Dann benötigst Du auch keine DB-Installation.

im aller einfachsten Falle reicht auch eine Text- oder sonstige Datei für lokale Einstellungen/ minimal gemerkte Daten,
man denke an Savegames von Spielen als vielleicht bekannte Referenz :wink:

ist schon aufwendig genug, über Festplatte und Verzeichnis nachzudenken, Schreibrechte,
Fehlermeldungen (huch, ich bin auf einer CD oder virtuell aus Netzwerk gestartet?) usw.,
Embedded-DB dürfte das auch alles brauchen

wenn bei separater DB-Installation alles konfiguriert lauffähig ist, kann die freilich auch leichter sein

Wie TheDarkRose oben geschrieben hat, braucht man den MySql Server. Ich habe MySql nur für lernzwecke genommen. Mir ist schon klar das es keine gute Wahl war. Aber da man dafür eine MySql dem Nutzer aufzwingen muss, werde ich jetzt doch was anderes nehmen müssen.

Welche Alternativen habe ich dann?
hsqldb und h2 und derby? Oder wie ist es bei denen?

Mir ist wichtig das der Nutzer keine zusätzlichen Installationen machen muss. Also einfach das fertige Programme per Mail bekommen und direkt loslegen. Nur Java setze ich voraus.

UPDATE: Mir ist gerade was eingefallen, wenn ich die Tabelle auf meinem Webspace erzeuge. Und aus der Jar auf die Online DB verweise, dann braucht der Nutzer nichts bezüglich MySql zu installieren oder?

UPDATE2: Ok cool das mit Webspace MySql hat super funktioniert. Jetzt möchte gerne diese “intergrierte Lösungen” probieren. Was hat man da ausser Derby?

h2 und derby sind wohl die bekanntesten. Eine DB frei im Netz zugänglich zu machen, ist eigentlich nicht sehr gut. Da schaltet man in der Regel einen Server vor. Ich denke, das wäre schon etwas mehr Arbeit.

Wenn Du Dich mit DBs beschäftigen möchtest, würde ich eine embedded DB empfehlen. Da kannst Du alles mit ausliefen. Tutorials gibt es zu beiden Datenbanken zu Hauf im Netz.

Am Einfachsten du nimmst eine .txt Datenbank, ok, da kannst du nicht direkt mit SQL drauf arbeiten, aber funktioniert wunderbar. Oder du verwendest eine .csv Datenbank

Ihr versteht mich nicht. (Ich bin nicht der Fragesteller.) Ein MySQL Server ist vorhanden/ über das Internet aus erreichbar. Der User Client arbeitet direkt auf der Datenbank. Natürlich ist alles save. :wink: Die Frage ist jetzt, ob der MySQL JDBC Driver in der .jar enthalten ist und mitgeliefert wird,- oder “manuell” nachinstalliert werden muss. Der Driver ist für prepared statements usw. unabdinglich.

Ansonsten, ja, ihr habt recht, eine java properties Datei reicht meist schon für alles aus, was jetzt nicht ganz so komplex/ “mächtig” werden soll.

Schönen Abend.