fcklunae Geschrieben 26. September 2009 Geschrieben 26. September 2009 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 Zitieren
flashpixx Geschrieben 26. September 2009 Geschrieben 26. September 2009 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 Zitieren
elSusto Geschrieben 29. September 2009 Geschrieben 29. September 2009 NSIS <- damit könntest du dein setup erstellen. Ich hab mal ein setup für ein programm mit postgresql geschrieben. Es gibt meistens ein silent-mode für die installation so kannst du das in deinem installer einbinden. NSIS Wiki Zitieren
fcklunae Geschrieben 29. September 2009 Autor Geschrieben 29. September 2009 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? Zitieren
flashpixx Geschrieben 29. September 2009 Geschrieben 29. September 2009 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) Zitieren
elSusto Geschrieben 29. September 2009 Geschrieben 29. September 2009 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 Zitieren
fcklunae Geschrieben 29. September 2009 Autor Geschrieben 29. September 2009 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! Zitieren
elSusto Geschrieben 29. September 2009 Geschrieben 29. September 2009 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. Zitieren
flashpixx Geschrieben 29. September 2009 Geschrieben 29. September 2009 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. Zitieren
fcklunae Geschrieben 29. September 2009 Autor Geschrieben 29. September 2009 @ 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". Zitieren
flashpixx Geschrieben 29. September 2009 Geschrieben 29. September 2009 @ 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. Zitieren
elSusto Geschrieben 29. September 2009 Geschrieben 29. September 2009 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. Zitieren
flashpixx Geschrieben 29. September 2009 Geschrieben 29. September 2009 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 Zitieren
fcklunae Geschrieben 29. September 2009 Autor Geschrieben 29. September 2009 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. Zitieren
elSusto Geschrieben 29. September 2009 Geschrieben 29. September 2009 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. Zitieren
fcklunae Geschrieben 29. September 2009 Autor Geschrieben 29. September 2009 Wenn du mit "er" mich meinst - ich bin 'ne sie. :cool: Zitieren
ksg9-sebastian Geschrieben 30. September 2009 Geschrieben 30. September 2009 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. Zitieren
fcklunae Geschrieben 30. September 2009 Autor Geschrieben 30. September 2009 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.. Zitieren
Empfohlene Beiträge
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.