[Java] Aufgabe #1 - Datenverwaltung

Dieses Thema im Forum "Kontest" wurde erstellt von xolox, 20. Dezember 2012 .

  1. 20. Dezember 2012
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Hallo zusammen,

    Da ich bis zum 25. sonst keine Zeit mehr habe, stelle ich schon jetzt mein Datenverwaltungstool vor.
    ### Features: ####

    - Anlegen/Löschen von Datenbanken
    - Anlegen/Löschen/Leeren von Tabellen
    - Anlegen/Löschen/Bearbeiten von Datensätzen
    - Eine Art SQL zum Anlegen/Löschen/Bearbeiten/Filtern von Datensätzen

    Als Datenstrukturen für die Datensätze können bisher Strings, Double und Integer genutzt werden.

    Gespeichert wird die Datenbank mit den Tabellen (nur Struktur) in einer XML-Datei und die eigentlichen Daten in einer CSV-Datei pro Tabelle. Das ganze wird abgelegt in dem Order "Files" im Root-Verzeichnis des Projekts.

    Damit die Bedienung einigermaßen schön ist, habe ich eine grafische Oberfläche gebastelt über die man das Programm bedienen kann. Schön ist zwar anders, aber ich bin absolut kein GUI-Experte und sehe das immer als notwendiges Übel an. Also bitte nicht wegen der Optik kritisieren, das weiß ich selbst


    #### Ein paar Screens wie es aussieht ####
    Bild

    Bild



    #### Ein paar Worte zum SQL-Dialekt.####
    Wichtig bei allen Querys:
    • Schlüsselnamen "INSERT, EDIT, DELETE, SELECT, WHERE, FROM, IN" müssen alle komplett groß geschrieben werden!
    • Strings in Anführungszeichen (") und NICHT! in Hochkommata (')
    • Double-Werte mit Punkt trennen. Beispiel: 3.141 und nicht 3,141

    Jetzt noch ein Paar Testquerys:

    Einfügen von Daten:
    Code:
    INSERT "Alex", 2881, "The Madness", 49 IN "User"; 
    Auswahl von Daten
    Code:
    SELECT "User" FROM "User" WHERE "Power" > 22
    Löschen von Daten
    Code:
    DELETE FROM "User" WHERE "User" = "Alex2"
    Hierbei ist die WHERE-Klausel optional, wenn keine angegeben wird, wird die gesamte Tabelle geleert.

    Bearbeiten von Daten
    Code:
    EDIT "User" SET "Posts" = 1;
    Auch hierbei kann optional eine WHERE-Klausel angegeben werden.



    Zu guter Letzt noch ein paar Statistiken (erstellt mit Metrics)

    Number of Packages: 10
    Number of Classes: 25
    Number of Methods: 156

    Total Lines of Code: 2954
    Method Lines of Code: 2206


    Und hier der Quellcode:
    Download: Datenverwaltung.rar | xup.in


    ######################################################################

    Jeztt ein paar Sachen, die ich gerne noch dazu sagen möchte:

    Für mich die größte Herausforderung die Oberfläche überhaupt so hinzukriegen. Ich habe mich damit eigentlich noch nie richtig beschäftigt =)

    Daher habe ich auch noch ein paar Fragen dazu:
    - Warum wird die Tabelle (beim Klick rechts auf eine Tabelle nicht über die komplette Breite angezeigt?
    - Wie bekomme ich es hin, dass beim selektieren einer Zeile in der JList die Selektierung über die gesamte Breite gezeichnet wird? Geht das wirklich nur, indem ich ein eigenen CellRenderer mache?


    Und jetzt seid ihr dran Ich hoffe ich habe einigermaßen verständlichen Code geschrieben. Ich habe versucht eine ordentliche Struktur hineinzubringen und auch die Klasse gut zu unterteilen und mit Kommentaren zu kennzeichnen.

    Falls sich jemand den Parser von den SQL-Statements angucken sollte, möchte ich mich jetzt schon für die Methode "getToken" entschuldigen ;(

    Eigentlich sollte sie nicht so groß werden, aber irgendwie ist das ganze ein bisschen aus dem Ruder gelaufen und dann fehlte die Zeit / Muße die in einzelne Methoden zu unterteilen. So ists jetzt ein 472 Zeilen schweres konstrukt geworden.

    Wenn sich wirklich einer anschauen möchte, wie man soetwas macht, dann soll er sich bitte die Methoden parse*****Command (je nach Command) angucken. Die sind analog dazu aufgebaut aber sehr viel schlanker.


    Viel Spaß und schöne Grüße
     
    3 Person(en) gefällt das.
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.