Wiem, jakie jest optymistyczne i pesymistyczne zamknięcie, ale kiedy piszesz kod java, w jaki sposób to robisz? Załóżmy, że używam Oracle z Javą, czy mam jakieś metody w JDBC, które pomogą mi to zrobić? Jak to skonfigurować? Wszelkie wskazówki zostaną docenione.Jak kodować optymistyczne i pesymistyczne blokowanie z kodu java
6
A
Odpowiedz
3
Załóżmy, że używam Oracle z Javą, czy mam jakieś metody w JDBC, które mi w tym pomogą?
powinien dostarczyć ci wskazówek, jak to zrobić.
Brak konkretnych metod JDBC. Raczej osiągniesz optymistyczne blokowanie w ten sposób, że projektujesz zapytania/aktualizacje SQL i gdzie umieszczasz granice transakcji.
11
można zaimplementować optymistyczne blokad w tabeli DB w ten sposób (tak optymistyczne zamek odbywa się w Hibernate):
- Dodaj całkowitą „wersja” kolumnę do tabeli.
- Zwiększ wartość tej kolumny przy każdej aktualizacji odpowiedniego wiersza.
- Aby uzyskać blokadę, po prostu przeczytaj wartość "wersja" wiersza.
- Dodaj warunek "version = winning_version" do klauzuli z wyciągiem aktualizacji. Sprawdź liczbę uszkodzonych wierszy po aktualizacji. Jeśli nie wystąpiły problemy z wierszami - ktoś już zmodyfikował wpis.
Twój aktualizacja powinna wyglądać
UPDATE mytable SET name = 'Andy', version = 3 WHERE id = 1 and version = 2
Oczywiście mechanizm ten działa tylko wtedy, gdy wszystkie strony po nim, w przeciwieństwie do DBMS świadczonych zamków, które nie wymagają specjalnego traktowania.
Mam nadzieję, że to pomoże.
Blokowanie Java i JDBC nie są powiązane w sposób, jakiego szukasz. W czym problem próbujesz rozwiązać? Blokady Java są zamkami wielokrotnego dostępu, które można uzyskać za pomocą "zsynchronizowanego" słowa kluczowego. Więc czego dokładnie szukasz? – Pavan
Szukam blokowania bazy danych – user2434