# Programmstruktur - Hibernateanwendung



## Capasso (25. Nov 2008)

Hallo,

ich bin gerade dabei mich etwas in Hibernate einzuarbeiten und wollte ein kleines Projekt realisieren.

Und zwar habe ich vorerst die folgenden Tabellen:

Produkt
- id
- name
- hersteller_id

Hersteller
- id
- name

Jetzt will ich das Projekt auch möglichst "MVC-mäßig" aufziehen

Also habe ich erstmal ein package DATA für die Klassen Produkt und Hersteller gemacht (und alle benötigten Hibernatekonfigurationen vorgenommen), beide klassen haben nur getter und setter Methoden.

Nur jetzt hänge ich ein  bisschen fest.

Was ist ddie geschickteste Vorgehensweise?

Erstelle ich noch ne Klasse ProduktVerwaltung die eine Liste aller Produkte enthält und außerdem für das Anlegen und Löschen der Datensätze verantwortlich ist.

Und bekommt die View dann die Instanz der Terminliste?

Und wie geht man generell vor beim Laden der Datensätze.. wenn ich z.B.: alle Produkte in einer Tabelle anzeigen will, lade ich dann nur die sichtbaren und hole den Rest bei Scrollen aus der DB oder lade ich gleich alle?


----------



## bronks (26. Nov 2008)

Capasso hat gesagt.:
			
		

> Also habe ich erstmal ein package DATA für die Klassen Produkt und Hersteller gemacht ...


Lt. JCC werden Paketnamen kleingeschrieben und irgendwie ist Dein Paketname nicht so optimal gewählt, wenn das Paket Fachobjekte enthält.



			
				Capasso hat gesagt.:
			
		

> Was ist ddie geschickteste Vorgehensweise? Erstelle ich noch ne Klasse ProduktVerwaltung die eine Liste aller Produkte enthält und außerdem für das Anlegen und Löschen der Datensätze verantwortlich ist.


Anregungen u.a. hier: http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html



			
				Capasso hat gesagt.:
			
		

> Und wie geht man generell vor beim Laden der Datensätze.. wenn ich z.B.: alle Produkte in einer Tabelle anzeigen will, lade ich dann nur die sichtbaren und hole den Rest bei Scrollen aus der DB oder lade ich gleich alle?


Es kann nicht schaden, eine 1,2 GB grosse Tabelle einfach komplett in den Arbeitsspeicher zu laden, um anschließend nur ein paar Sätze auf dem Bildschirm auszugeben.  :wink:


----------



## Capasso (26. Nov 2008)

bronks hat gesagt.:
			
		

> Lt. JCC werden Paketnamen kleingeschrieben und irgendwie ist Dein Paketname nicht so optimal gewählt, wenn das Paket Fachobjekte enthält.
> .


Keine Angst das paket heißt anders, hatte nur eben was von der Hand geschrieben



			
				bronks hat gesagt.:
			
		

> Anregungen u.a. hier: http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html


ähh ja



			
				bronks hat gesagt.:
			
		

> Es kann nicht schaden, eine 1,2 GB grosse Tabelle einfach komplett in den Arbeitsspeicher zu laden, um anschließend nur ein paar Sätze auf dem Bildschirm auszugeben.  :wink:


[/quote]
So viele daten werden es wohl nicht


----------



## Guest (26. Nov 2008)

Bezüglich der Struktur kannst du dir ja mal das DAO-Pattern ansehen

Generic Data Access Object

Ich mache es dann immer so, daß ich Services schreibe, die die DAOs benutzen und ihrerseits Businessmethoden nach "draußen" anbieten, z.B. einen ProductService der dir dann u.a. eine Liste aller Produkte liefert.


----------

