Persistenz - Konkurrierende Zugriffe

S

SteveP

Hi,
ich möchte eine Art Kassenbuch schreiben, das seine Daten in einer MySQL Datenbank hinterlegt.
Dabei können auf ein Konto/in eine Kasse Geld eingezahlt, abgehoben und der Kontostand nachgefragt werden. Das Problem ist nun, was passiert, wenn mehrere Nutzer gleichzeitig Geld einzahlen oder abheben.
Momentan realisiere ich den Einzahlvorgang so, dass ich den Kontostand abfragen, das Eingezahlte draufaddiere und den neuen Wert in die Datenbank schreibe. Nun könnte es aber auch passieren, dass jemand genau zwischen dem Abfragen + Draufaddieren und dem Schreiben des neuen Wertes Geld einzahlt. Dessen Einzahlung würde ich ja dann einfach überschreiben, als wäre sie nie da gewesen.
Bietet JDBC an, dass es automatisch selbst prüft ob der Wert verändert wurde, und dann nicht schreibt?
Bietet z.B. Hibernate sowas an?
Ich hab schon Google bemüht, bin dort immer wieder auf Begriffe wie optimistic und pessimistic Locking gestoßen, mir ist aber nicht ganz klar, was sie bedeuten.

Vielen Dank im Voraus,

mfg Steve
 
Danke für die Antwort,
ich nehme an, du willst, mir damit sagen, dass ich einfach nach dem Abfragen des Wertes die Tabelle solange mit einem Lock versehen soll, bis ich den Wert geändert habe und dann den Lock wieder lösen soll.

So werd ichs machen, danke.

Weisst du zufällig auch, wie das bei Hibernate gehandhabt wird?
 

Neue Beiträge

Zurück