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
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