СТАТЬИ
Прокачай свои навыки Java – стань востребованным специалистом пройдя стажировку!
Вы хотите вырасти до опытного Java-разработчика и работать в крупной IT-компании?
RoadMap IT School поможет вам в освоении новых технологий Java и Spring на реальном примере в форме практической стажировки. Длительность 3 месяца. Команда из 5 человек. Тимлид уровня Senior

Основы транзакций в Spring и JDBC.

Транзакции в Spring и JDBC играют ключевую роль в обеспечении целостности данных и управлении ими.


Транзакция в контексте Java и работы с базами данных представляет собой логическую единицу работы, которая состоит из одного или нескольких изменений в базе данных. Эти изменения рассматриваются как единое целое, и либо все они успешно выполняются, либо происходит откат к исходному состоянию, если хотя бы одно из изменений не удалось выполнить.


Транзакции обеспечивают атомарность, согласованность, изолированность и долговечность (ACID) операций с данными. Атомарность гарантирует, что все операции внутри транзакции будут выполнены полностью или не выполнены вообще. Согласованность обеспечивает, что данные остаются в корректном состоянии после завершения транзакции. Изолированность гарантирует, что изменения, внесенные одной транзакцией, не видны другим транзакциям до ее завершения. Долговечность означает, что изменения, внесенные успешной транзакцией, сохраняются даже в случае сбоя системы.


В Java для работы с транзакциями используются различные инструменты и библиотеки, такие как JDBC и Spring Framework.


Рассмотрим основные моменты.

Аннотация @Transactional используется для обозначения методов или классов, которые должны выполняться в рамках транзакции. Поддерживает различные атрибуты, такие как propagation, isolation, timeout, readOnly, и rollbackFor.

Управление транзакциями может быть декларативным или программным. Декларативное управление происходит через использование аннотации @Transactional для автоматического управления транзакциями. Программное управление происходит через использование TransactionTemplate или PlatformTransactionManager для явного управления транзакциями в коде.


Что такое JDBC? JDBC (Java Database Connectivity) — это стандартный API для взаимодействия с реляционными базами данных в Java. Основные классы включают Connection, Statement, PreparedStatement, и ResultSet.


Как мы управляем транзакциями в JDBC?

По умолчанию(автоматическое управление) каждая операция выполняется в отдельной транзакции.

Для ручного управления транзакциями используем методы setAutoCommit(false), commit(), и rollback().


Пример использования Spring и JDBC


@Service
public class MyService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public void performTransaction() {
        jdbcTemplate.update("INSERT INTO my_table (column1) VALUES (?)", "value1");
        // другие операции
    }
}
Улучши свои карьерные возможности.
Пройди стажировку и стань Middle разработчиком Java
Получи практический опыт разработки Java проекта в Agile команде с наставником. Ты можешь попробовать прямо сейчас!
Made on
Tilda