Программное управление транзакциями в Spring

Spring реализует прекрасную поддержку декларативного управления транзакциями. В сущности всё управление сводится к корректной расстановке аннотации @Transactional, а всё остальное берёт на себя Spring. Но, в случае необходимости, можно взять контроль в свои руки и вернуть управление транзакциями в код. Этот пример Читать далее Программное управление транзакциями в Spring

Изоляция и распространение транзакций в Spring

В статье, посвящённой декларативному управлению транзакциями в Spring я обещал отдельно описать изоляцию транзакций друг от друга и их распространение. Это время пришло. Изоляция транзакций Я уже писал про побочные эффекты, вызываемые параллельным исполнением запросов. Уровни изоляции транзакций можно рассматривать как Читать далее Изоляция и распространение транзакций в Spring

Декларативное управление транзакциями в Spring

Транзакция — это очень важное понятие в мире баз данных (и не только). Каждый, кто работал с базами данных, слышал про ACID и транзакции. Если кто не работал и не знает что это такое, то всё просто: транзакция это набор Читать далее Декларативное управление транзакциями в Spring

Spring ORM и Hibernate

Spring облегчает использование Hibernate в приложениях,беря на себя создание объектов Hibernate и управление ими. Кроме того, Spring позволяет разделить конфигурацию Hibernate от конфигурации базы данных и конфигурации пула соединений. Подготовка Нам понадобится пустой maven проект с Spring, Spring ORM, H2, Читать далее Spring ORM и Hibernate

Spring ORM и JPA

Spring облегчает использование JPA в приложениях, избавляя разработчика от необходимости вручную создавать объекты JPA и отделяя логику приложения от конкретной реализации JPA. Spring обеспечивает унифицированный интерфейс для различных реализаций ORM, тем самым упрощая переход от одной реализации к другой. Подготовка Читать далее Spring ORM и JPA

Соединения с базами в Spring JDBC

Когда начинаешь писать приложение, работающее с JDBC или Spring JDBC, возникает вопрос — вроде бы понятно, как обращаться к базе, как делать запросы, как получать данные и т.д. Но почти нигде не сказано как настраивать соединение с базой данных.  Я б хотел Читать далее Соединения с базами в Spring JDBC

Запросы как объекты.

Логическое развитие идеи параметризованых запросов и prepared запросов, это инкапсуляция запросов в собственные классы. Каждый запрос обёртывается в класс, объекты которого каким-либо образом настраиваются во время исполнения и выполняют себя сами. В этом примере используется схема данных из статьи запросы Читать далее Запросы как объекты.

Интеграционное тестирование и Spring JDBC

Почти все примеры в статьях и о JDBC и о Spring JDBC были написаны по одному шаблону — подготавливаем структуру базы данных, наполняем её тестовыми данными, исполняем какой-то код на тестовых данных, очищаем базу данных. В статье о признаках хорошего теста Читать далее Интеграционное тестирование и Spring JDBC

Обработка ошибок в Spring JDBC

Как JDBC использует исключение SQLException для публикации ошибок, так и Spring использует исключение DataAccessException с той же целью. Иерархия классов, начинающаяся с DataAccessExeption не привязана к JDBC и применяется в достаточно широком смысле внутри Spring для работы с данными. Преобразование из низкоуровневых классов исключений, Читать далее Обработка ошибок в Spring JDBC

Batch операции в Spring JDBC

Использование batch режима выполнения запросов обычно гораздо эффективнее. В этом режиме запросы не выполняются сразу, каждый по отдельности, а накапливаются и выполняются одним большим запросом с множеством данных. Например, если вы делаете несколько update запросов, то каждый запрос будет выполнен как Читать далее Batch операции в Spring JDBC