Datenmodell / Struktur der Anwendung

Tort-E

Mitglied
Hallo zusammen!

Ich bin gerade dabei eine Anwendung zu schreiben, die Daten in eine Datenbank schreibt und auch ausliest ...
Die Anwendung möchte ich gerne nach dem MVC Modell aufbauen und stehe nun vor folgenden Problem(en):
Im Model wird ja die Kommunikation zur Datenbank sichergestellt. Das heißt, dass ich hier quasi die Entitäten der DB abbilde. Nehmen wir mal an ich habe eine Tabelle T_Mitarbeiter und eine Tabelle T_Abteilung. Die Tabellen sind in einer 1:n Beziehung verknüpft (T_Mitarbeiter (n) <---- (1) T_Abteiung). Die Javaklasse "Mitarbeiter" sieht so aus:
Code:
public class Mitarbeiter {
private int personalnummer;
private String name;
private int abtID;

public Mitarbeiter() {}
public Mitarbeiter(int persnr, String name, int abt) {
....
}

Die Klasse hat nun die Aufgabe mir mit einem Select alle Mitarbeiter mit den dazugehörigen Abteilungen abzufragen. Die Daten möchte ich an einen Controller weiterleiten, der in der View eine Tabelle erstellt und die Daten zur Anzeige bringt. In der View soll der User auf einen Tabelleneintrag (Objekt) klicken können und Detailinfos erhalten. Ich möchte meine Klassen jetzt nicht für jede Abfrage jedesmal um weitere Attribute erweitern.
Gibt es andere Möglichkeiten?
 
Zuletzt bearbeitet:
ich würde mir eine methode schreiben die einen vector zurückgibt
diese rufe ich dann auf und übergebe es dem tablemodel
 
Ich möchte meine Klassen jetzt nicht für jede Abfrage jedesmal um weitere Attribute erweitern.
Gibt es andere Möglichkeiten?

Ich verstehe hier dein Problem leider nicht, das müsstest du genauer erläutern.
Geht es dir darum das du bei neuen Spalten in der Tabelle nicht immer die Klasse anpassen willst?

Zusätzlich (hat nichts mit dem eigentlichen Problem zu tun):
Im Model wird ja die Kommunikation zur Datenbank sichergestellt.

Ja laut Definition soll sich das Model die Daten halten. Ich finde es aber sehr unschön wen die Modelklasse selbst den DB Zugriff erledigt und das ResultSet verarbeitet etc.
Dazu sind Repositories besser geeignet (angestoßen vom Controller). Die Modelklassen bilden nur die Geschäftobjekte mit den Daten.

Das heißt, dass ich hier quasi die Entitäten der DB abbilde. Nehmen wir mal an ich habe eine Tabelle T_Mitarbeiter und eine Tabelle T_Abteilung. Die Tabellen sind in einer 1:n Beziehung verknüpft (T_Mitarbeiter (n) <---- (1) T_Abteiung).

Vermeide Prefixe bei Tabellennamen! Solange du nicht ein großes komplexes System in der DB abbilden willst wo man einen Namen möglicherweise öfters brauchen könnte reichen einfache Tabellennamen aus.
Die SQL Befehle sind so flüssiger zu schreiben und zu lesen 🙂

Worüber man oft streitet: Ich verwende immer die Mehrzahl als Tabellenname -> Da eine Tabelle je mehrere Abteilungen hat und ich "selektiere von den Abteilungen"
 
Ja laut Definition soll sich das Model die Daten halten. Ich finde es aber sehr unschön wen die Modelklasse selbst den DB Zugriff erledigt und das ResultSet verarbeitet etc.
Dazu sind Repositories besser geeignet (angestoßen vom Controller). Die Modelklassen bilden nur die Geschäftobjekte mit den Daten.

Kannst Du mir vllt. hierzu ein kleines Beispiel geben?
Ich hatte vorhin die Idee, dass der Controller einen SQL Befehl an das Model übergibt und dann ein ResultSet zurückbekommt.
 

Zurück
Oben