Поддержка транзакций
Поддержка SQL-транзакций в JDBC реализована соответсвующими методами класса Connection:
-
setAutoCommit(boolean) — устанавливает режим автоматического завершения транзакций (если значение true, то каждый SQL-запрос трактуется как отдельная транзакция, в противном случае для завершения транзакции используются следующие методы);
-
commit() — сохраняет изменения;
-
rollback() — отменяет изменения.
В качестве примера, где может понадобиться использовать механизм транзакций, можно привести следующую ситуацию: пусть имеется два банковских счета, один хранит деньги в рублях, второй в долларах; требуется сконвертировать часть средств с долларового счета в рублевый. Для этого необходимо произвести три операции:
-
снять деньги с долларового счета;
-
произвести конвертацию по текущему обменному курсу;
-
зачислить сумму на рублевый счет.
Эти операции должны быть выполнены в рамках одной транзакции, чтобы ни клиент, ни банк не оказались обманутыми, если произойдет ошибка на каком-то из этапов. Транзакция гарантирует, что все эти операции будут выполнены либо все (если выполнена операция commit), либо все отменены (выполнена операция rollback). Разумеется, используемая СУБД должна поддерживать механизм транзакций, иначе вызовы commit и rollback могут просто игнорироваться или генерировать исключения.
- Раздел 16. Многоуровневые и многослойные приложения. Шаблон проектирования Модель-Представление-Контроллер
- 16.1. Многоуровневые приложения
- 16.2. Многослойные приложения
- 16.3. Шаблон проектирования Модель-Представление-Контроллер
- 16.4. Реализация шаблона Модель-Представление-Контроллер в веб-приложениях
- Раздел 17. Базы данных в веб-приложениях
- 17.1. Основные понятия баз данных
- 17.2. Системы управления базами данных
- 17.3. Язык запросов sql
- Транзакции
- 17.4. Доступ к базам данных из Java
- Пример: база данных студентов
- Поддержка транзакций
- 17.5. Объектно-реляционная проекция
- Лекция 18. Безопасность Интернет-приложений
- 18.1. Аутентификация и авторизация
- 18.2. Понятие безопасности Интернет-приложений
- 18.3. Классы атак сетевого уровня Сниффинг пакетов
- Подмена ip-адреса
- Отказ в обслуживании
- Сетевая разведка
- 18.4. Криптографические технологии
- 18.5. Уязвимости уровня приложений
- Уязвимости системы аутентификации
- Уязвимости системы авторизации
- Атаки на стороне клиента
- Выполнение кода на сервере
- Разглашение информации
- Злоупотребление функциональными возможностями
- Наиболее распространенные уязвимости
- 18.6. Резюме