logo
5 модуль

Поддержка транзакций

Поддержка SQL-транзакций в JDBC реализована соответсвующими методами класса Connection:

В качестве примера, где может понадобиться использовать механизм транзакций, можно привести следующую ситуацию: пусть имеется два банковских счета, один хранит деньги в рублях, второй в долларах; требуется сконвертировать часть средств с долларового счета в рублевый. Для этого необходимо произвести три операции:

  1. снять деньги с долларового счета;

  2. произвести конвертацию по текущему обменному курсу;

  3. зачислить сумму на рублевый счет.

Эти операции должны быть выполнены в рамках одной транзакции, чтобы ни клиент, ни банк не оказались обманутыми, если произойдет ошибка на каком-то из этапов. Транзакция гарантирует, что все эти операции будут выполнены либо все (если выполнена операция commit), либо все отменены (выполнена операция rollback). Разумеется, используемая СУБД должна поддерживать механизм транзакций, иначе вызовы commit и rollback могут просто игнорироваться или генерировать исключения.