BD-1st-2.4-lab10.tresc-1.1-Slajd14
Zarządzanie transakcjami - cd.
W ramach jednego połączenia z SZBD równocześnie może być wykonywana tylko jedna transakcja. Dotychczas, wszystkie wykonywane polecenia SQL były automatycznie zatwierdzane, a zatem każda transakcja składała się tylko z jednego polecenia SQL. Aby wyłączyć automatyczne zatwierdzanie, należy użyć metody „setAutoCommit” interfejsu „Connection”. Metoda ta posiada jeden parametr typu „boolean”, który określa, czy automatyczne zatwierdzanie ma być włączone („true”) czy nie („false”). Sposób użycia tej metody przedstawiono na przykładzie (1). Przykład (2) wypisuje na konsoli liczbę pracowników zapisanych w relacji PRACOWNICY. Liczba ta jest konieczna w celu zademonstrowania działania kolejnych metod. Jeżeli w relacji PRACOWNICY nie wprowadzono żadnych zmian, powinna zostać wypisana liczba 14. Kolejnymi, po „setAutoCommit”, metodami interfejsu „Connection”, służącymi do zarządzania transakcjami, są metody „rollback” i „commit”, służące odpowiednio do wycofywania i zatwierdzania zmian wykonanych w ramach transakcji. Przykłady (3) i (4) demonstrują ich użycie. Rozpocznijmy od przykładu (3). W przykładzie tym wykonywane jest polecenie DELETE usuwające jednego pracownika z bazy danych, a następnie wypisywana jest liczba usuniętych krotek. Jeżeli w relacji PRACOWNICY nie wprowadzono żadnych zmian, powinien zostać usunięty jeden pracownik. W kolejnym kroku aktywowana jest metoda „rollback” na rzecz obiektu reprezentującego połączenie z bazą danych. W wyniku działania tej metody, zmiany wykonane w relacji PRACOWNICY są wycofywane, i kolejne polecenie wypisuje liczbę pracowników równą 14, pomimo tego, że jedna krotka została w miedzy czasie usunięta. Przykład (4) jest taki sam jak przykład (3), z jedną różnicą: zamiast metody rollback, użyto metody commit. Tym razem zmiany w relacji PRACOWNICY zostają zatwierdzone, czego dowodem jest liczba pracowników wypisana przez ostatnie polecenie tego przykładu (13 pracowników).
Pełny kod programu, którego fragmenty przedstawiono na tym i poprzednim slajdzie, załączono do kursu w pliku JDBCELearning4.java.