Spring Boot с несколькими файлами импорта SQL

Spring Boot с несколькими файлами импорта SQL

1. обзор

Spring Boot позволяет нам импортировать образцы данных в нашу базу данных - главным образом для подготовки данных к интеграционным тестам. Из коробки есть две возможности. We can use import.sql (Hibernate support) or data.sql (Spring JDBC support) files to load data.

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

В этом руководстве мы покажем, как это сделать с Hibernate и Spring JDBC.

2. Поддержка гибернации

Мы можем определить файлы, содержащиеsample data to load with a propertyspring.jpa.properties.hibernate.hbm2ddl.import_files. Его можно установить в файлеapplication.properties внутри папки тестовых ресурсов.

Это в том случае, если мы хотим загрузить образцы данных только для тестов JUnit. Значение должно быть разделенным запятыми списком файлов для импорта:

spring.jpa.properties.hibernate.hbm2ddl.import_files=import_active_users.sql,import_inactive_users.sql

Эта конфигурация загрузит образцы данных из двух файлов:import_active_users.sql иimport_inactive_users.sql. Здесь важно отметить, что мыhave to use prefix spring.jpa.properties to pass values (JPA configuration)to the EntityManagerFactory.

Далее мы покажем, как это можно сделать с помощью поддержки Spring JDBC.

3. Поддержка Spring JDBC

Конфигурация исходных данных и свойстваSpring JDBC support is very similar to Hibernate. We have to use the spring.datasource.data:

spring.datasource.data=import_active_users.sql,import_inactive_users.sql

Установка значения, как указано выше, дает те же результаты, что и в поддержке Hibernate. Однако значительныйadvantage of this solution is a possibility to define value using an Ant-style pattern:

spring.datasource.data=import_*_users.sql

Приведенное выше значение указывает Spring искать все файлы с именем, которое соответствует spatternimport_*_users.sql , и импортировать данные, которые находятся внутри.

4. Заключение

В этой короткой статье мы показали, как настроить приложение Spring Boot для загрузки исходных данных из пользовательских файлов SQL.

Наконец, мы показали две возможности - Hibernate и Spring JDBC. Оба они работают довольно хорошо, и разработчик должен выбрать из них.

Как всегда, полные примеры кода, использованные в этой статье, доступныover on Github.