Inicialização Spring com vários arquivos de importação SQL

Inicialização Spring com vários arquivos de importação SQL

1. Visão geral

O Spring Boot nos permite importar dados de amostra para nosso banco de dados - principalmente para preparar dados para testes de integração. Fora da caixa, existem duas possibilidades. We can use import.sql (Hibernate support) or data.sql (Spring JDBC support) files to load data.

No entanto, às vezes queremos dividir um grande arquivo SQL em alguns menores, por exemplo, para melhor legibilidade ou compartilhar alguns arquivos com dados init entre os módulos.

Neste tutorial, mostraremos como fazer isso com ambos - Hibernate e Spring JDBC.

2. Suporte para Hibernar

Podemos definir arquivos que contêmsample data to load with a propertyspring.jpa.properties.hibernate.hbm2ddl.import_files. Ele pode ser definido no arquivoapplication.properties dentro da pasta de recursos de teste.

Nesse caso, queremos carregar dados de amostra apenas para testes JUnit. O valor deve ser uma lista de arquivos separados por vírgula para importar:

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

Esta configuração carregará dados de amostra de dois arquivos:import_active_users.sqleimport_inactive_users.sql. Importante mencionar aqui é que nóshave to use prefix spring.jpa.properties to pass values (JPA configuration)to the EntityManagerFactory.

A seguir, mostraremos como podemos fazer isso com um suporte Spring JDBC.

3. Suporte do Spring JDBC

A configuração dos dados iniciais e propriedadeSpring 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

Definir o valor como acima fornece os mesmos resultados que no suporte ao Hibernate. No entanto, um significativoadvantage of this solution is a possibility to define value using an Ant-style pattern:

spring.datasource.data=import_*_users.sql

O valor acima diz ao Spring para pesquisar todos os arquivos com um nome que corresponda aimport_*_users.sql pattern e importar os dados que estão dentro.

4. Conclusão

Neste breve artigo, mostramos como configurar o aplicativo Spring Boot para carregar dados iniciais de arquivos SQL personalizados.

Finalmente, mostramos duas possibilidades - Hibernate e Spring JDBC. Ambos funcionam muito bem e cabe ao desenvolvedor escolher qual deles.

Como sempre, os exemplos de código completos usados ​​neste artigo estão disponíveisover on Github.