carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.966 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 226 von 2212 (10%) |<   <   >   >|

Autor Thomas
Datum 09.01.04, 13:58
Betreff Re: Entwurf 3-Schichten-Architektur


Um Deine konkrete Frage nach dem Resultset vorab zu beantworten: Der Business-Layer sollte nichts über ResultSets oder SQL wissen!

Ausführlicher:

Schicht 1: ui
Schicht 2: business
Schicht 3: db

Schicht 1 darf Schicht 3 nicht kennen und umgekehrt soll Schicht 3 nichts machen was nur wegen Schicht 1 gebraucht wird.

Schicht 3 hat eine Schnittstelle die aus serialisierbaren Databeans besteht (idR. repräsentiert solch eine Bean einen Record).

Genauso hat auch Schicht 2 eine Schnittstelle die aus ser. Businessbeans besteht. SERIALIZABLE ist dabei wichtig da ja die GUI ggf. auf einem anderen Rechner als die Logik läuft und dann werden diese Objekte über die Leitung geschickt.

Die Datenbank-Schicht sollte dabei eine "Java"-Logische Sicht zurückliefern und die Business-Schicht sollte eine "Echte"-Logische-Sicht zurückliefern.

Ein typisches Beispiel ist hierbei immer das Datum: In der DB steht z.B. 031201 (für 01.12.2003), die DB-Schicht wird dies in der zugehörigen Databean als java.util.Date zurückliefern und dabei die Umsetzung des Fensters,... machen. In diesem Fall wird die Business-Bean das Objekt einfach (geclont) an die ui-Schicht durchreichen und diese wird es formatieren.

Anders sieht es bei den typischen Enums aus. Beispiel: In einer alten DB-Struktur steht 0,1,2 oder 3. Durch Änderungen ist 2 und 3 inzwischen das gleiche. Die DB-Schicht wird also einen int zurückliefern der 0/1/2 ist (3 wird auf 2 gemappt). Im Business-Bereich gibt es nun aber eine Klasse welche diese 0/1/2 behandelt. Also wird im Business-Layer ein Mapping vorgenommen und die Oberfläche stellt dies irgendwie dar.

Es lässt sich immer leichter mit alten (versauten) Datenbankmodellen erklären da bei einer neu designten Datenbank das meiste ja wirklich 1:1 von der DB bis an die GUI weitergereicht wird.

Hoffe Dir etwas geholfen zu haben. Ansonsten Email an

Ciao
Thomas


Diskussionsverlauf:
Entwurf 3-Schichten-Architektur
    Re: Entwurf 3-Schichten-Architektur
        Re: Entwurf 3-Schichten-Architektur

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com