MySQL / 15. Выполнение транзакций

Использование транзакций в программах на Java

Задача
Вы хотите выполнить транзакцию в сценарии JDBC.

Решение
Используйте стандартный механизм поддержки транзакций JDBC.

Обсуждение
Для выполнения транзакции в Java используйте ваш объект Connection для отключения режима автофиксации. После запуска запросов используйте метод commit()объекта для фиксации транзакции или rollback() для ее отката. Обычно предложения транзакции выполняются в блоке try, в конце которого стоит commit(). Для обработки ошибок вызовите rollback() в соответствующем обработчике исключений:

try
{
conn.setAutoCommit (false);
Statement s = conn.createStatement ();
// передать деньги от одного человека другому
s.executeUpdate ("UPDATE money SET amt = amt - 6 WHERE name = 'Eve'");
s.executeUpdate ("UPDATE money SET amt = amt + 6 WHERE name = 'Ida'");
s.close ();
conn.commit ();
conn.setAutoCommit (true);
}
catch (SQLException e)
{
System.err.println ("Transaction failed, rolling back.");
Cookbook.printErrorMessage (e);
// пустой обработчик исключений, если откат не удался
try
{
conn.rollback ();
conn.setAutoCommit (true);
}
catch (Exception e2) { }
}

Статьи по MySQL на эту тему:

Альтернативы транзакциям

Вернуться в раздел: MySQL / 15. Выполнение транзакций