Spring Boot: работа с SQL базами данных

Spring Framework предоставляет обширную поддержку для работы с SQL базами данных, от прямого доступа JDBC с использованием JdbcTemplate до полных технологий "объектно-реляционного сопоставления" (ORM, “object relational mapping”), таких как Hibernate. Spring Data обеспечивает дополнительный уровень функциональности: создание реализаций репозитория непосредственно из интерфейсов и использование соглашений для генерации запросов из имен ваших методов.

Настройка DataSource (источника данных)

Java-интерфейс javax.sql.DataSource предоставляет стандартный метод работы с соединениями с базой данных. Традиционно DataSource использует URL-адрес вместе с некоторыми учетными данными для установления соединения с базой данных.

Поддержка встроенных баз данных

Часто удобно разрабатывать приложения, используя встроенную базу данных в памяти. Очевидно, что базы данных в памяти не обеспечивают постоянного хранения. Вам нужно заполнить базу данных, когда ваше приложение запускается, и быть готовым выбросить данные, когда ваше приложение завершается.

Spring Boot может автоматически настраивать встроенные базы данных H2, HSQL и Derby. Вам не нужно указывать URL-адреса подключения. Вам нужно только включить зависимость сборки от встроенной базы данных, которую вы хотите использовать.

Если вы используете эту функцию в своих тестах, вы можете заметить, что одна и та же база данных повторно используется всем вашим набором тестов, независимо от количества используемых вами контекстов приложения. Если вы хотите убедиться, что у каждого контекста есть отдельная встроенная база данных, вы должны установить для spring.datasource.generate-unique-name значение true.

Например, типичные зависимости POM будут следующими:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <scope>runtime</scope>
</dependency>

Для автоматической настройки встроенной базы данных вам нужна зависимость от spring-jdbc. В этом примере он транзитивно проходит через spring-boot-starter-data-jpa.

Если по какой-либо причине вы настроили URL-адрес соединения для встроенной базы данных, убедитесь, что автоматическое отключение базы данных отключено. Если вы используете H2, вы должны использовать DB_CLOSE_ON_EXIT=FALSE для этого. Если вы используете HSQLDB, вы должны убедиться, что shutdown=true не используется. Отключение автоматического выключения базы данных позволяет Spring Boot контролировать, когда база данных закрыта, тем самым гарантируя, что это произойдет, когда доступ к базе данных больше не нужен.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки