# DAO s



## Kris (9. Apr 2008)

Hallo!

Ich habe versucht Hibernate zu verwenden. Das überfordert mich ein wenig. Normale Objekte zu erstellen ist kein Problem. Sobals HashSets verwendet werden, übersteigt das mein jetziges verständnis. Ich weiss nicht wie die Daten aus der Tabelle in Java erzeugt werden sollen. Wenn man eine VERBINDUNG MANY-TO-MANY HAT. (z.B wie hier http://www.torsten-horn.de/techdocs/java-hibernate.htm
Wie funktioniert das, wenn ein Kunde mehrere Speisen bestellt hat und eine Speise von mehreren Kunden bestellt wurde. Wird dann ein Objekt Kunde erstellt, dass mehrere Objekte Speisen beinhaltet und ein Objekt Speise, dass mehrere Kunden beinhaltet?

Ich gebs glaub ich auf und gehe auf DAOs und einen Connection Pool zurück. Hier wollte ich fragen, wie ich man hier vorgehen soll. Man erstellt DAO Objekte. Das ist kein Problem. Aber den Connection Pool zu programmieren und ihn zu verwenden gestalltet sich schwierig. Muss man im Contol eine Verbindung zur Datenbank erstellen? Ich hatte das Problem das ich im DAO die Verbindung erstellt habe und mehrere Verbindungen mit der Datenbank aufgebaut wurden.

Gibt es ein Code-Beispiel?


----------



## L-ectron-X (9. Apr 2008)

Die DAO-Objekte sollen eigentlich hauptsächlich nur die SQL-Anfragen tätigen und die Ergebnisse erhalten.
Für die Herstellung einer Verbindung kannst du auch eine eigene Klasse schreiben, da sich dies von DAO zu DAO unterscheiden kann.






Core J2EE Patterns - Data Access Object

Dazu folgender Link: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html


----------



## byte (9. Apr 2008)

Kris hat gesagt.:
			
		

> Wie funktioniert das, wenn ein Kunde mehrere Speisen bestellt hat und eine Speise von mehreren Kunden bestellt wurde. Wird dann ein Objekt Kunde erstellt, dass mehrere Objekte Speisen beinhaltet und ein Objekt Speise, dass mehrere Kunden beinhaltet?



Was meinst Du mit 'wird da ein Objekt erstellt'? Das Datenbankmapping erstellt keine Objekte sondern gibt nur an, wie die Java-Properties mit den Tabellen-Spalten zusammenhängen.
 n:m Beziehung (many to many) würde in diesem Fall einfach nur bedeuten, dass Kunden viele Speisen haben. Im Gegensatz zur 1:n Beziehung (one to many) könnten hier aber verschiedene Kunden dieselbe Speise besitzen.
Fachlich würde das imo hier wenig Sinn machen. Zwei Kunden bestellen zwar manchmal die gleiche Pizza aber wohl nie dieselbe.  Hier macht OneToMany vermutlicherweise mehr Sinn.


----------



## maki (10. Apr 2008)

Connection Pools für JDBC gibt es viel zu viele, was die Welt nicht braucht ist noch einen... 

Würde dir empfehelen, bei Hibernate weiterzumachen, JDBC ist viel zu "low level", der einstieg ist zwar schwer, lohnt sich aber wirklich, besonders mittel-/langfristig.


----------

