# Wie baut man eine Anwendung mit DB Zugriff



## Guest (30. Mai 2008)

Hi,

kurz vorweg: Ich habe IMHO ganz gute Java und Swing Kenntnisse und auch mit Datenbanken hab ich schon ein paar Projekte gemacht (allerdings nicht in Java ;-)).

*Jetzt zu meiner Frage:
Wie struktutiert man eine Desktop-Anwendung (Swing) mit Datenbankzugriff?*

Konkreter:
In einer Datenbank sind verschiedenste Daten über Personen gespeichert. Ziel der Anwendung ist es diese darzustellen. Es ist also nur lesender Zugriff erforderlich. Da die Abfragen relativ komplex sein können, würde ich die Abfragen per SQL an die Datenbank schicken und dann das Ergebnis in der GUI darstellen.

Nur wie zieht man so eine Datenbankschicht in ein Programm ein? Erstellt man eine Klasse, die Methoden für die Verbindung und die Abfragen enthält und übergibt diese Klasse dann der/dem GUI/Controller, der darauf die Methoden aufruft? Wie stellt man es an, dass die Verbindung zu DB dauerhaft bestehen bleibt?

Ich hoffe ich konnte mein Problem einigermaßen schildern. Es geht mir eher um das Design einer solchen Anwendung, als der konkreten Umsetzung.

Vielen Dank schon mal für eure Hilfe!


----------



## SilentJ (30. Mai 2008)

Hallo,

das ist erstmal etwas zum Lesen:

www.torsten-horn.de/techdocs/java-sql.htm

Generell gilt, dass das MVC-Paradigma:

Model (Datenhaltung)
View (Anzeige der Daten / GUI, für Dich: Swing)
Controller(Datenzugriff und -management)

Deine Präsentationslogik sollte niemals direkt auf die Daten zugreifen, sondern die entsprechenden Aufrufe an einen Controller delegieren, der den Datenzugriff übernimmt. Dadurch bleibt die Anwendung modular, jede Schicht (engl. Tier) kann ausgetauscht werden, ohne das eine andere unmittelbar betroffen ist.


----------



## ARadauer (30. Mai 2008)

ich verwnde gerne DAOs, das Model hält die Daten, bekommt es vom Controller die Anweisung Daten zu laden, benutzt es das entsprechende DAO um sich diese Fachobjekte zu laden. Das DAO kümmert sich selber um die DB verbindung, oft über einen Connection Pool. Das DAO hat Methoden für die CRUD Operationen des Fachobjekts...


----------



## Guest (30. Mai 2008)

ARadauer hat gesagt.:
			
		

> ich verwnde gerne DAOs, das Model hält die Daten, bekommt es vom Controller die Anweisung Daten zu laden, benutzt es das entsprechende DAO um sich diese Fachobjekte zu laden. Das DAO kümmert sich selber um die DB verbindung, oft über einen Connection Pool. Das DAO hat Methoden für die CRUD Operationen des Fachobjekts...



Genau solche Informationen hab ich erhofft. Nimmst du ein DAO Framework oder machst du das "per Hand" ?


----------

