SQL PreparedStatement & autocommit
Если я создаю preparedstatement, используя соединение JDBC, которое имеет "autocommit off", нужно ли мне вызвать commit (), чтобы сделать транзакцию постоянной, или достаточно только вызова prepare? Обратите внимание, что я только хочу подготовить заявление и сохранить его для последующего выполнения.
Большое спасибо!
1 ответ:
Ответ: да, вы должны вызвать commit.
Шаг "подготовка" не делает ничего, что имеет отношение к обработке транзакций на сервере.
Вы должны вызвать
executeUpdate()
(илиexecute()
), чтобы начать транзакцию (предполагая, что используемый SQL действительно запускает транзакцию)Использование PreparedStatement без автоматической фиксации требует следующих шагов:
- подготовьте заявление
- задайте значения параметров
- вызов
executeUpdate()
(илиexecute()
в зависимости от тип утверждения)- вызов
Connection.commit()
Чтобы было понятнее: вызов
prepareStatement()
Не требуетcommit()
.