Zum Inhalt springen

Java Programm mit Datenbankanbindung als .exe oder Setup erstellen


Empfohlene Beiträge

Geschrieben

Hallihallo!

Im Rahmen eines Schulprojektes gilt es, einen Geschäftsprozess durch die Programmierung eines Java-Programms mit einer Datenbankanbindung zu optimieren.

Wir benutzen eine MySQL-Datenbank und benutzen Xampp, um diese zu starten.

Unsere Frage ist nun: Wie erstellen wir ein Setup oder eine .exe von unserem Programm, in dem die Datenbank mehr oder minder direkt mit drin steckt, damit der Benutzer nur dieses Setup/nur diese .exe ausführen muss und nicht noch irgendwas anderes installieren muss??

Über eine (recht schnelle) Antwort wäre ich (auch stellvertretend für meine Gruppenmitglieder) sehr sehr dankbar!

Liebe Grüße

fcklunae

Geschrieben

Was hat Deine Frage mit Java zu tun?

Eine *.exe ist ein kompiliertes Binary für Windows und Xampp ist Apache, mySQL und PHP als fertige Developerumgebung ebenfalls für Windows.

Außerdem wird Dein Vorhaben wohl kaum so in die Tat umzusetzen sein, denn das Setupprogramm kann nicht blind eine Verbindung zur Datenbank aufbauen. Über welche Schnittstelle soll das dann geschehen, JDBC, ODBC? Dann müsstest Du vor der Installation die entsprechenden Datenbanktreiber im System hinterlegen. Zusätzlich kannst Du nicht wild in eine Datenbank schreibe, im Normalfall muss sich der Benutzer darauf authentifizieren, d.h. Du müsstest im Setup sämtliche Connection Daten abfragen.

Zusätzlich wird auch der DBMS Server so installiert, dass er nicht von jedem Host zugänglich ist, gerade in der von Dir genannten Umgebung wird der mySQL Dienst so eingerichtet, dass nur localhost darauf zugreifen kann, d.h. eine allgm gültiges Setup kannst Du wohl kaum erzeugen. Ebenso ist mySQL nicht auf eine Plattform beschränkt, so dass Dein Setup auf einem Unix nicht funktionieren würde. Weiterhin sind die meisten Unixserver ohne GUI installiert, d.h. Dein Setup muss Ncurses o.ä. unterstützen

Geschrieben

Coole Sache, danke!

Da ich allerdings meine Datenbank nicht direkt mit einbinden kann, muss ich eine .jar erstellen und zusätzlich ein DB-Schema der Datenbank per mysqldump.

Kennt sich jemand mit letzterem aus und kann mir eventuell erklären, wie ich dieses Schema damit erstelle und ob man das dann später irgendwie einbinden muss und wenn ja, wie?

Geschrieben

Kennt sich jemand mit letzterem aus und kann mir eventuell erklären, wie ich dieses Schema damit erstelle und ob man das dann später irgendwie einbinden muss und wenn ja, wie?

Warum versuchst Du nicht zu verstehen, dass es an sich unmöglich ist, so ein Setup zu erzeugen? Woher weiß denn Dein Setup, dass "mysqldump" installiert und vor allem wo es läuft".

Wenn ich als Admin den Zugriff auf das DBMS (wie ich es immer mache) nur von localhost erlaube und irgendein User im Netz versucht Dein tolles Setup auszuführen, dann wird es kläglich scheitern.

Eine Datenbankinstallation macht man als Admin niemals per Setup, sondern ich importiere das Dumpfile per Hand oder mir sagt die Beschreibung des Programms, ich soll eine leere Datenbank anlegen. Wenn letzteres der Fall ist, dann kann das Programm auch innerhalb der von mir erstellten Datenbank auch Tabellen anlegen (z.B. macht dieses Wordpress)

Geschrieben

Also habe noch nicht viel mit datenbanken gearbeitet aber habe mal hier nachgeschaut. Datenbanken mit mysqldump sichern

Da wird nur ein Sql file erzeugt. Ich musste damals auch aus meinem NSIS skript heraus tabellen mit sql anlegen. Wenn du aber die rechte nicht hast, hast du ein Problem.

Also kopierst du mit dem skript erst deine jar datei an die gewünschte stelle, anschliesend installierst du die DB und dann machste die SQL befehle.

Aber warum braucht ihr für die Schule ein setup ? ....schreibt eine Installations anleitung. Geht schneller und ist leichter ;)

Geschrieben

Das Programm soll später einem Kunden übergeben werden. ;-)

Wär ja blöd, wenn er das Programm hat, aber unsere Datenbank oder zumindest das Schema davon nicht da ist. *gg*

@ flashpixx: Ich hab in meinem letzten Post von einer .jar geschrieben, nicht von einer .exe!

Geschrieben

dann kannst du aber nicht davon ausgehen das bei deinem Kunden xammp installiert ist.

Also dann schreib in die Anleitung zu dem Installer das er Admin rechte braucht, weil eine DB installiert werden muss.

Und dann installierst du nur mysql ? Weil bei xammp ist doch noch vieles dabei was du nicht brauchst.

Geschrieben

Wär ja blöd, wenn er das Programm hat, aber unsere Datenbank oder zumindest das Schema davon nicht da ist. *gg*

Wenn ich ein Datenbanksystem einrichte, dann haben die Benutzer nur das Recht die DML auszuführen (select, insert, update, delete). Die Entwickler dürfen innerhalb der Datenbank die DDL (alter, create, drop) ausführen und auch nur von ihren Rechner, die per IP zuvor definiert wurden. Nur die Administratoren dürfen Datenbanken anlegen und löschen und das auch nur von localhost, d.h. nur auf dem Rechner auf dem das DBMS läuft. Zusätzlich müssen sie sich via SSH Key authentifizieren.

Dein Setup wird in einer realen Umgebung bei solchen oder ähnlichen Sicherheitsrichtlinien absolut fehlschlagen. Du kannst nicht einfach davon ausgehen, dass der Benutzer der ein Programm gleiche Rechte innerhalb des DBMS besitzt. In einem solchen Fall gehört ein anständiges Howto für dem Admin dazu, wie er zu installieren hat.

@ flashpixx: Ich hab in meinem letzten Post von einer .jar geschrieben, nicht von einer .exe!

In Deinem allerersten Post schon.

Geschrieben

@ elSusto: Mir wurde von jemandem gesagt, der Kunde solle dann MySQL installieren und wir sollen dann zu der .jar unser DB-Schema per mysqldump legen.

@ flashpixx: Ja, in meinem ersten Post schon, aber darauf bin ich ja gar nicht nochmal eingegangen.. ;)

Der Kunde soll auch keine weiteren Tabellen anlegen können oder so, die einzigen Befehle, die er ausführen wird, sind "select", "insert", "update" und "delete".

Geschrieben
@ elSusto: Mir wurde von jemandem gesagt, der Kunde solle dann MySQL installieren und wir sollen dann zu der .jar unser DB-Schema per mysqldump legen.

Ja und? Er installiert es, aber davon weißt Du noch nichts über die Berechtigungen. Außerdem wird der mySQL Dämon bei einer Standardinstallation an das local-Interface gebunden, so dass Du von außen nicht ran kommst, d.h. Dein Setup müsste schon mal auf dem gleichen Rechner laufen, auf dem der mySQL Dienst läuft.

Der Kunde soll auch keine weiteren Tabellen anlegen können oder so, die einzigen Befehle, die er ausführen wird, sind "select", "insert", "update" und "delete".

Und Du hast einfach mal in ein Dump, was Du mit mysqldump erstellt hast rein geschaut? Sobald Du die Struktur exportierst wirst Du Create, Alter etc darin finden.

Geschrieben

Jetzt bleibt dir wohl nur noch übrig eine schöne Installationsanleitung zu schreiben wie der Kunde das shema auf seine mysql datenbank bekommt.

aber du kannst mit NSIS glaube ich auch die aktuellen rechte abfragen.

Und sonst eine Fehlermeldung ausgeben das er Das skript auf dem Mysql server mit admin rechten ausführen muss.

Geschrieben

aber du kannst mit NSIS glaube ich auch die aktuellen rechte abfragen.

Und sonst eine Fehlermeldung ausgeben das er Das skript auf dem Mysql server mit admin rechten ausführen muss.

Naja NSIS ist zwar posix-konform, aber ein Installer für Windows Nullsoft Scriptable Install System ? Wikipedia

Mein mySQL läuft aber auf Linux, somit hätte der Kunde schon einmal verloren und außerdem würde ich sicherlich nicht auf meinem Server irgendwelche selbstgebackenen Installationtools ausführen. Vor allem ist ja bei den meisten *nixen eine passende Paketverwaltung onboard. Wenn jemand professionell Software wäre auch ein passendes Paket Pflicht, da vor allem direkt die Abhängigkeiten mit aufgelöst werden, d.h. ein Deb, RPM, DMG/PKG bei Mac, etc

Geschrieben

Eine Installationsanleitung sollen wir sowieso schreiben..

Aber gut, da der Kunde mein Freund ist, wärs auch nicht schlimm, wenns vorerst erst mal nicht beim Kunden installiert werden könnte. *g*

Ich habs auch mal mit einer HSQLDB versucht, aber das hab ich leider gar nicht gebacken bekommen.

Geschrieben

Mein mySQL läuft aber auf Linux, somit hätte der Kunde schon einmal verloren und außerdem würde ich sicherlich nicht auf meinem Server irgendwelche selbstgebackenen Installationtools ausführen.

da muss ich allerdings zustimmen.

Wenn jemand professionell Software wäre auch ein passendes Paket Pflicht, da vor allem direkt die Abhängigkeiten mit aufgelöst werden, d.h. ein Deb, RPM, DMG/PKG bei Mac, etc

naja wenn es nur für schulzwecke ist, reicht ja wenn er nen paket zur installation auf windows hat bzw für das Betriebssystem das eingesetzt wird.

Geschrieben

Mit Derby (Apache Derby) oder HSQLDB kann man eigentlich net viel falsch machen.

Library mit ausliefern, korrekt konfigurieren und das tut. Die "Datenbank-Datei" kannst du auch irgendwo im Filesystem ablegen.

Wie genau die Konfiguration und Integration in Java tut steht in diversesten sehr guten Tutorials.

Geschrieben

Cool, eine weitere Option. Dankesehr!

Für das jetzige Projekt werde ich dann aber wohl das DB-Schema per mysqldump extrahieren. Anschließend die .jar erstellen und dann schauen, was ich machen bzw. beschreiben muss (Installationshandbuch lässt grüßen), damit der Kunde es bei sich installieren kann..

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...