SQL GUI selbst schreiben?
Nabend Community,
Ich habe mich heute bei unserem W-Seminar dafür gemeldet, ein GUI für den Zugriff auf eine Datenbank zu schreiben. Eigentlich hatte ich vor mit php und HTML ein Web-Interface zu erstellen. So weit so gut, allerdings interessiert mich nun doch, welche anderen Möglichkeiten es dies betreffend noch gibt. Prinzipiell geht es darum ein GUI zu "programmieren", das es Schülern aus unserem Seminar, sowie denjenigen, welche die Datenbank in Zukunft nutzen werden, ermöglicht sowohl neue Datensätze in die SQL einzufügen (sofern entsprechende Rechte vorhanden), als auch Daten auszulesen. Mir würden da nur noch die Frames von Java einfallen, da ich mich allerdings mit Java noch nicht wirklich beschäftigt habe, weis ich nicht, ob es möglich ist, über Java Frames Daten in einer SQL zu ändern. Mit den SQL cmds, HTML und php kenne ich mich weitestgehend aus, bei anderen Programmier/Scriptsprachen siehts allerdings ziemlich mau aus :D, deshalb bin ich für jeden Vorschlag dankbar, ausserdem hab ich kein Problem damit, mich mit neuer Materie (z.B neuen Psprachen oder Protokollen) auseinander zusetzen.
Danke
Gruß Rtex
5 Antworten
Also die einfachste und wohl auch schnellste Methode wäre hier, wenn man auf ein PHP Framework setzt.
Das wohl derzeit beste Framework für PHP, welches auch für Anfänger hervorragend geeignet ist ist Laravel.
Laravel`s Eloquent ist einfach ein Monster. Mit Eloquent führst du grob gesagt Datenbank Abfragen aus. Du kannst also DB Inhalte ändern, hinzufügen, abfragen usw.
https://laravel.com/docs/5.2/eloquent
Hast du bspw. eine Tabelle welche "classes" heißt kannst du bspw. sehr einfach alle Inhalte der Tabelle ausgeben mit
$classes = Classes::all();
dd($classes);
Thats it. Damit werden alle Einträge der Tabelle "classes" ausgelesen.
Die wohl besten Tutorials für Laravel findest du auf https://laracasts.com/series/laravel-5-from-scratch
Diese Session "Laravel from scratch" ist sogar kostenlos.
Für das Frontend der GUI kannst du auf ein CSS Framework setzen wie etwa Bootstrap oder Semantic-UI.
So wie es ceevee schon schreibt: Nutze das, was du bereits kannst und befasse dich lieber mit einer guten Struktur. Das Programm soll später von deinen Mitschülern genutzt werden, daher sollte dabei auch etwas anständiges herauskommen.
Wenn du nun anfängst, noch irgendwelche Sprachen neu zu lernen, sinkt die Wahrscheinlichkeit auf eine gute Software, der Aufwand dagegen steigt unnötig. Verschiebe solche Experimente lieber auf Hobbyprojekte.
Naja prinzipiell ist das der einzige Job, den ich für die nächsten 3 Simester im P-Seminar haben werd, also hab ich viel Zeit da rumzuprobieren :D
Was ich sehr liebe (und was hier natürlich vl. nicht ganz unnütz wäre), ist Electron (http://electron.atom.io/). Das ganze basiert auf bewährten Webtechnologien wie HTML und Javascript, nutzt jedoch auch neuere Technologien wie node.js. Damit lassen sich ziemlich einfach plattformunabhängige Anwendung schreiben. Wenn du dich mit neuem beschäftigen willst, das wäre eine Möglichkeit, da es auch immer gut kommt, wenn man im Bericht sagen kann, dass man etwas dazugelernt hat.
P.S.: Node.js ist sehr einfach zu lernen, da es praktisch nur Javascript ist.
Ich hatte mal als keines Projekt zwischendurch mit Java-Swing eine kleine GUI gebaut, welche wie der Query-Browser funktioniert. d.h. ein Frame, mit einer Textarea, einer Table und einem Button.
In der Textarea haben sich normale SQL-Statements eingeben lassen.
Die Ausgabe von SELECT-Befehlen wurde anschließend unten in der Table dargestellt.
Der Button hatte das Event zum Ausführen des Befehls.
Intern bekommst du vom Datenbank-Treiber genug Informationen um eine Tabelle vollständig aufbauen zu können.
Über die SQLException kannst du mögliche Fehler an den Anwender ausgeben.
Aber mittlerweile kam JavaFX mehr in Mode, und ich würde das Projekt daher versuchen damit umzusetzen. Hier ist der Code einfach deutlich angenehmer.
Falls es bei deinem Projekt irgendwo hängen sollte, stell hier einfach eine Frage.
Wenn ein Webinterface erlaubt ist und du mit PHP und Co. am besten vertraut bist, dann solltest du das auch nehmen. Wenn du objektorientiert programmierst, dann solltest du dir mal ORM-Frameworks angucken
https://de.wikipedia.org/wiki/Objektrelationale_Abbildung
, außerdem schreit deine Aufgabenstellung geradezu danach, das MVC-Architekturmuster zu nehmen.
https://de.wikipedia.org/wiki/Model_View_Controller
Ich würde also weniger was an der Programmiersprache ändern, sondern mich eher in der Softwarearchitektur einlesen.