Один простой подход - управление транзакциями JDBC. См. java.sql.Connection.setAutoCommit()
документацию. Это позволяет вам явно отключить автоматическую фиксацию операторов:
Connection c = /* retrieve connection */
c.setAutoCommit(false);
c.setTransactionIsolation(/* depends on your requirements */);
c.executeQuery(/* */);
c.executeUpdate(/* */);
c.commit(); /* or c.rollback() */
В реальном сценарии вы должны ввести блок finally
для фиксации или отката транзакции, в противном случае вы можете получить тупики в вашей базе данных.
Редактировать: Если ваши Java-приложения являются клиентами конечных пользователей, вы всегда рискуете, чтобы пользователи напрямую подключались к базе данных (например, используя Access), минуя логику управления транзакциями. Это одна из причин, по которой мы начали размещать серверы приложений между ними. Решением также может быть реализация хранимой процедуры, чтобы клиенты вообще не взаимодействовали с таблицами.