Введение
Java Database Connectivity (JDBC) — это основанная на Java технология доступа к данным, используемая для подключения к базе данных Java. Это часть платформы Java Standard Edition, предоставляемой корпорацией Oracle. Транзакции в базах данных важны для поддержания свойств ACID (атомарность, непротиворечивость, изоляция, устойчивость) для обеспечения целостности данных.
Транзакция — это набор из одного или нескольких операторов, которые выполняются как единое целое, поэтому выполняются либо все операторы, либо ни один. В этой статье мы узнаем о реализации транзакций в Java с использованием JDBC.
Основы транзакций JDBC
По умолчанию при создании соединения оно находится в режиме автоматической фиксации. Это означает, что каждый отдельный оператор SQL рассматривается как транзакция и автоматически фиксируется сразу после его выполнения. Для управления транзакциями вручную необходимо отключить режим автофиксации методом setAutoCommit(false)
. После этого никакие операторы SQL не будут зафиксированы, пока вы не вызовете метод commit()
явно. Если вы хотите прервать транзакцию, вы можете вызвать метод rollback()
.
Вот пример того, как вы можете использовать эти методы:
Connection conn = null; try { // assuming you have a DataSource, ds conn = ds.getConnection(); // disable auto-commit mode conn.setAutoCommit(false); // perform SQL operations... // commit the transaction conn.commit(); } catch (SQLException e) { // if any error occurs e.printStackTrace(); if (conn != null) { try { // rollback the transaction conn.rollback(); } catch (SQLException ex) { ex.printStackTrace(); } } } finally { if (conn != null) { try { conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } } }
Детальное управление транзакциями
Подробный процесс управления транзакциями включает в себя несколько шагов: выполнение операторов SQL, проверка операторов, принятие решения о фиксации или откате и, наконец, фиксация или откат транзакции.