Spring Boot avec plusieurs fichiers d’importation SQL

Spring Boot avec plusieurs fichiers d'importation SQL

1. Vue d'ensemble

Spring Boot nous permet d'importer des exemples de données dans notre base de données, principalement pour préparer des données en vue de tests d'intégration. Hors de la boîte, il y a deux possibilités. We can use import.sql (Hibernate support) or data.sql (Spring JDBC support) files to load data.

Cependant, nous souhaitons parfois diviser un gros fichier SQL en quelques fichiers plus petits, par exemple, pour améliorer la lisibilité ou partager des fichiers avec des données init entre modules.

Dans ce tutoriel, nous allons montrer comment le faire avec les deux - Hibernate et Spring JDBC.

2. Assistance Hibernate

Nous pouvons définir des fichiers qui contiennentsample data to load with a propertyspring.jpa.properties.hibernate.hbm2ddl.import_files. Il peut être défini dans le fichierapplication.properties dans le dossier des ressources de test.

C'est dans le cas où nous souhaitons charger des exemples de données uniquement pour les tests JUnit. La valeur doit être une liste de fichiers séparés par des virgules à importer:

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

Cette configuration chargera des exemples de données à partir de deux fichiers:import_active_users.sql etimport_inactive_users.sql. Il est important de mentionner ici que noushave to use prefix spring.jpa.properties to pass values (JPA configuration)to the EntityManagerFactory.

Ensuite, nous montrerons comment nous pouvons le faire avec un support Spring JDBC.

3. Prise en charge de Spring JDBC

La configuration des données initiales et de la propriété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

La définition de la valeur ci-dessus donne les mêmes résultats que dans le support Hibernate. Cependant, unadvantage of this solution is a possibility to define value using an Ant-style pattern significatif:

spring.datasource.data=import_*_users.sql

La valeur ci-dessus indique au Spring de rechercher tous les fichiers avec un nom qui correspond àimport_*_users.sql pattern et d'importer les données qui se trouvent à l'intérieur.

4. Conclusion

Dans ce court article, nous avons montré comment configurer l'application Spring Boot pour charger les données initiales à partir de fichiers SQL personnalisés.

Enfin, nous avons montré deux possibilités: Hibernate et Spring JDBC. Ils fonctionnent tous les deux plutôt bien, et c'est au développeur de choisir lequel choisir.

Comme toujours, les exemples de code complets utilisés dans cet article sont disponiblesover on Github.