# MySQL DataSource DriverManager



## Kris (5. Mrz 2008)

Hallo!

Ich versuche ein Programm mit einer Verbindung zu einer Datenbank aufzubauen. Mein Problem ist, dass ich nicht weiss wie man diese Verbindung am Effektifsten aufbauen sollte. Zur Zeit war meine Idee, ein Interface mit allen DB-Daten zu erstellen (Konstanten) und diese in Klassen, die auf die DB zugreifen sollen zu impelmentieren. Nun wollte ich wenn eine Klasse (z.B. ein extends JFrame) erstellt wird im Konstruktor eine Methode "verbinden" aufgerufen. Und wenn das Frame geschlossen wird die Methode "DBVerbindungShließen"aufgerufen. So das während des Programms die Verbindung zur Datenbank bestehen bleibt und nicht bei jeder Datenveränderung eine neue Verbindung aufgebaut werden muss.
Ist das ökonomisch in Ordnung oder sollte ich lieber eine andere Möglichkeit in betracht ziehen?


----------



## tfa (5. Mrz 2008)

Zur DB-Connection-Verwaltung nimmt man am besten einen Connection-Pool.
Eine einfache Implementierung ist z.B. DBCP von
den Apache Commons. Auf der Seite gibt es auch Codebeispiele, die die Verwendung zeigen.

Wenn du größeres vorhast, könnte man auch über ein Persistenz-Framework wie Hibernate 
nachdenken. Dann braucht man sich um Connections, SQL usw. praktisch gar nicht mehr zu kümmern.
Das ist aber schon ein bisschen schwieriger.

Ein Interface nur wegen ein paar Konstanten zu definieren halte  ich für schlechten Stil. 
Objektorientiert ist das jedenfalls nicht. Von einem JFrame, der auf die DB zugreift, ganz zu schweigen.


----------



## Kris (5. Mrz 2008)

Im JFrame befindet sich ein JTable, dass Daten aus der DB enthält und bei veränderung wieder in die DB eintragen soll. Wie solle dies denn sonst gelößt werden?


----------



## tfa (6. Mrz 2008)

Das Holen der Daten passiert in einer eigenen Klasse, ebenso wie das Anzeigen und das Controlling.
Das Stichwort heißt Model-View-Controller.


----------



## Kris (6. Mrz 2008)

Also ein Klasse in der die Daten aus der Datenbank gelesen und verarbeitet werden, eine für die visuellen Sachen (JFrame mit Tabelle) und eine Klasse die sagt wie wann welche Daten aus der DBKlasse in die VisuellleKlasse eingefügt werden sollen?
Oder findet die Verarbeitung im Controlling statt?
Gibts vielleicht irgendwo ein kleines Codebeispiel?


----------

