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