SQL PreparedStatement & autocommit


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

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

1 2

1 ответ:

Ответ: да, вы должны вызвать commit.

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

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

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

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

Чтобы было понятнее: вызов prepareStatement() Не требуетcommit().