Встречается на собеседованиях • сегодня

Нужно ли коммитить транзакцию только с SELECT запросами

Нет, коммитить транзакцию только с SELECT запросами не обязательно. SELECT-запросы не изменяют данные, поэтому транзакция в этом случае не нужна для обеспечения целостности данных. Однако, если требуется обеспечить согласованность данных (например, при повторяющихся чтениях в рамках одной логической операции), можно использовать транзакцию с уровнем изоляции READ_COMMITTED или выше.

Пример:

java
try (Connection conn = dataSource.getConnection()) {
    conn.setAutoCommit(false);  // Начинаем транзакцию
    try (Statement stmt = conn.createStatement()) {
        ResultSet rs = stmt.executeQuery("SELECT * FROM users");
        // Обработка результатов
    }
    // conn.commit();  // Явный коммит не обязателен
}  // Автоматический rollback при закрытии соединения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы