SQL PreparedStatement & autocommit

Если я создаю подготовленное заявление, используя соединение JDBC с отключенной автоматической фиксацией, нужно ли вызывать commit(), чтобы сделать транзакцию постоянной или достаточно только подготовительного вызова? Обратите внимание, что я хочу только подготовить оператор и сохранить его для последующего выполнения.

Большое спасибо!

1 ответ

Решение

Ответ: да, вы должны позвонить совершить.

Шаг "подготовка" не делает ничего, что имеет отношение к обработке транзакций на сервере.

Вы должны позвонить executeUpdate() (или же execute()) для запуска транзакции (при условии, что используемый SQL фактически запускает транзакцию)

Использование PreparedStatement без автоматической фиксации требует следующих шагов:

  1. Подготовьте заявление
  2. Установите значения параметров
  3. вызов executeUpdate() (или же execute() в зависимости от типа заявления)
  4. вызов Connection.commit()

Чтобы прояснить ситуацию: звоню prepareStatement() не требует commit(),

Другие вопросы по тегам