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.
Powiązane problemy
- 1. Optymistyczne blokowanie w Hibernate domyślnie
- 2. Zamek w java - Optymistyczne vs pesymistyczny
- 3. Uzyskiwanie błędu "Stale object". Optymistyczne blokowanie: jak to działa?
- 4. iOS, blokowanie urządzenia z kodu
- 5. JPA połączyć w RESTful aplikacji sieci web z DTO i Optymistyczne blokowanie?
- 6. Blokowanie wątków Java
- 7. Blokowanie i usuwanie plików
- 8. Blokowanie kodu Git kodu przeniesionego/usuniętego w pliku
- 9. Jak kodować demona Mono
- 10. jak kodować piękne PHP razem z HTML?
- 11. Wyliczanie i blokowanie ConcurrentDictionary
- 12. Czy można kodować java w innym języku?
- 13. Jak zamknąć aplikację Java Swing z kodu
- 14. jak kodować pasek postępu
- 15. Jak kodować słownik Pythona?
- 16. jak ukryć Linelayout z kodu Java?
- 17. Jak używać Scala varargs z kodu Java
- 18. Jak wyłączyć logowanie log4j z kodu Java
- 19. Blokowanie i oczekiwanie na zdarzenie
- 20. Blokowanie blokad a Blokowanie niezablokowujące
- 21. Jak kodować zapisane komentarze?
- 22. Jak kodować za pomocą JCIP (Java Concurrency in Practice)
- 23. Jak utworzyć styl kodowania kompatybilnego z Intellij i Eclipse oraz formatowanie kodu (dla kodu Java)?
- 24. Jak kodować obraz base64 javascript
- 25. Jak kodować moduł jądra Linux?
- 26. jak kodować/dekodować prosty ciąg
- 27. Jak kodować ROT13 w Pythonie3?
- 28. jak kodować Json w yii2?
- 29. zmienić zmienne java z kodu JRuby?
- 30. blokowanie wszystkich botów wyjątkiem kilku z Nginx
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