# Programm-Architektur bei DB-Zugriff



## Leeprasteen (11. Aug 2004)

in einer Anwendung sollen zwei Klassen auf die selbe Datenbanktabelle zugreifen. die eine schreibend und die andere lesend. wenn nun jede klasse selbst auf die datenbank zugreift und die daten schreibt bzw liest könnte es ja dazu kommen, dass die tabelle gerade schon blockiert ist!? wenn ja wie kann man das am besten umgehen?


----------



## pogo (11. Aug 2004)

schreib doch ein interface für den zugriff auf die Datenbank, dass dann beide klassen benutzen.


----------



## Leeprasteen (11. Aug 2004)

hmm - na aber es wäre ja dann auch denkbar, dass beide klassen gleichzeitig über eine methode des interface auf die datenbanktabelle zugreifen und es zu nem problem kommt oder?


----------



## pogo (11. Aug 2004)

weiß ich nicht genau.
aber da musst du ja nur einmal die Verbindung herstellen.
und dann kann man dies bestimmt regeln, dass wenn gerade geschrieben wird man nicht lesen kann und umgehkehrt


----------



## macfreakz (11. Aug 2004)

Ein guter Tipp kann ich dir geben: 

 - Erstelle eine Klasse namens ConnectionManager, die sich um die Datenbankverbindung kümmert! Diese Klasse kann und darf nur einmal erzeugt werden (siehe singleton Pattern) und sie gibt das Referenz von singleton Objekt zurück und darauf kann dann jede Klasse zugreifen.


----------



## Leeprasteen (11. Aug 2004)

thx  - habs so gelöst - hatte ich eigentlich auch schon zuvor, bloss diese klasse war nicht threadsafe


----------



## nollario (12. Aug 2004)

aber wozu? selbst wenn mehrere prozesse gleichzeitig auf die datenbank (und die gleiche tabelle) zugreifen, sollte das dbms dies verwalten können. sonst wäre es ja keine datenbank! ;-)

ein singleton connection manager bzw. pool macht natürlich sinn!


----------

