Ответ
В JDBC по умолчанию используется уровень изоляции TRANSACTION_READ_COMMITTED.
Что это означает:
- Гарантирует, что транзакция видит только зафиксированные изменения других транзакций.
- Предотвращает "грязное чтение" (dirty reads).
- Допускает "неповторяемое чтение" (non-repeatable reads) и "фантомное чтение" (phantom reads).
Пример проверки и изменения уровня:
Connection conn = DriverManager.getConnection(url, user, pass);
// Получить текущий уровень изоляции
int defaultIsolation = conn.getTransactionIsolation();
// Вернет Connection.TRANSACTION_READ_COMMITTED
// Установить другой уровень, например, SERIALIZABLE
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Важно: Фактическая поддержка уровней и их семантика зависят от конкретной СУБД (PostgreSQL, MySQL, Oracle).