# Datenbank: Performance Tuning



## Gast (26. Nov 2004)

Hi,

ich habe vor eine Standalone Programm zu schreiben, daß zugriff auf eine größere Datenbank nimmt. Als Grundstruktur, für die verschiedenen Datenbankzugriffe, hatte ich an eine Factory Klasse gedacht, die ständig bei Anfragen von der GUI: 

eine Datenbankverbindung aufbaut, 
das Statement der Verbindung an eine spezifische Factory Klasse(z.B UserFactory) weiterleitet,
die wiederrum das ResultSet an eine Bean(z.B User) weiterleitet,
die wiederrum dann die verschiedenen Werte(Name, EMail,...) mit den Setter Methoden füllt.

Hab ihr schon Erfahrung mit so einer Methode, würdet Ihr das empfehlen oder habt Ihr bessere vorschläge für JDBC Programmierung.


----------



## foobar (26. Nov 2004)

> die ständig bei Anfragen von der GUI:
> eine Datenbankverbindung aufbaut,


Ich würde nur einmal bei Programmstart eine Connection ersellen und diese im gesamten Programm zu Verfügung stellen. 



> das Statement der Verbindung an eine spezifische Factory Klasse(z.B UserFactory) weiterleitet,


Lass dir doch direkt von der Factory user-Ojekte erzeugen dann hast du den DB-Zugriff sauber vom Rest des Programms getrennt siehe (DAO-Pattern).


----------



## akira (26. Nov 2004)

> Ich würde nur einmal bei Programmstart eine Connection ersellen und diese im gesamten Programm zu Verfügung stellen.



Also ich würde lieber einen ConnectionPool, z.B. eine DataSource, verwenden und die Connections bei Bedarf anfordern.
Spätestens bei einer Multiuser-Anwendung (parallele Threads) reicht eine Connection nicht mehr aus.


----------



## foobar (26. Nov 2004)

> Also ich würde lieber einen ConnectionPool, z.B. eine DataSource, verwenden und die Connections bei Bedarf anfordern.
> Spätestens bei einer Multiuser-Anwendung (parallele Threads) reicht eine Connection nicht mehr aus.


Sicher, aber anscheinend handelt es sich bei dieser Software nicht um eine verteilte Anwendung sondern um eine ganz einfache Singleclient Anwendung. Deshalb macht der Einsatz eines Connectionpools, meines Erachtens, keinen Sinn.


----------



## Guest (27. Nov 2004)

Lass Dir die ganze Persistenzschicht automagisch generieren.
z.B. mit SQL2Java


----------

