H2 est une base de données rapide et légère qui peut être persistée (dans un fichier) ou non. Je la trouve utile pour au moins 2 cas d’utilisation :
– Lorsque je veux réaliser un PoC, ça me permet d’avoir une base de données configurée en 2 minutes.
– Lorsque je veux faire des tests d’intégration qui communiquent avec une BDD SQL, H2 est une base de données très légère et très rapide qui fait très bien l’affaire.
Ce que j’aime beaucoup avec une base de données H2, c’est qu’elle est vraiment facile à installer et elle vient même avec une petite interface web qui permet de voir sa base et d’exécuter des requêtes.
On va voir étape par étape comment utiliser très simplement une base H2 dans notre application SpringBoot utilisant SpringDataJPA, c’est parti 😎
Note: Cette dépendance est présente dans votre pom.xml si vous sélectionnez “h2” dans l’initialize spring boot (https://start.spring.io/)
II. Configuration
1. Pour une base sans persistence
Pour une base “volatile” c’est à dire qui sera remise à zéro à chaque fois que vous relancez votre application (ce qui est utile pour les tests par exemple) :
Dans le fichier application.properties à la racine de votre projet, ajoutez les lignes suivantes:
Relancez votre application. Si vous allez sur URL http://localhost:port/h2 vous devriez voir une fenêtre de connexion. En remplaçant les informations par celles spécifiées dans votre properties :
Exemple pour une base persistée :
Exemple pour une base non-persistée :
Puis “connect”, vous verrez le contenu de votre base et pourrez effectuer vos requêtes.
C’est tout ce qu’il y a à faire, à présent vos données vont être persistées dans votre base H2 🙂
IV. Pour aller plus loin
Vous pouvez initialiser votre base de données H2 via des scripts SQL qui seront lus au démarrage de l’application.
– Vous pouvez initialiser sa structure via un fichier schema.sql présent dans les ressources de votre projet (à la racine).
– Vous pouvez insérer des données via un fichier data.sql présent dans les ressources de votre projet (à la racine).
Note: suivant votre version de SpringBoot, la façon dont est exécutée ces scripts par défaut peut changer (ordre d’exécution, type de base pour laquelle ils se jouent etc..). Ca a notamment bien changé à partir de SpringBoot 2.5
donc pensez bien à lire la doc 🙂
Exemple:
Résultat:
Conclusion
On a vu ensemble comment pouvoir utiliser H2 dans votre projet SpringBoot et quelques options disponibles. Que ça soit dans les tests ou pour des PoC, je trouve que c’est une base de données légère, facile à configurer qui fait très bien l’affaire 🙂
Introduction
Sur un des projets sur lesquels j’interviens, diverses personnes ont contribué au cours des années parfois sans passation entre les équipes.
En regardant les commits, on voit qu’une équipe a mis un ORM, une autre l’a enlevé, une autre a mis un autre ORM etc..
Le coût en temps pour l’entreprise est considérable car ce n’est pas une opération a...
Introduction
Vous avez diagnostiqué une fuite mémoire et vous voulez corriger le problème.
Si vous utilisez IntelliJ, vous avez à disposition dans votre IDE un outil puissant qui vous permettra de diagnostiquer la source du problème et vérifier vot...
Introduction
JaCoCo est un outil très connu dans le monde Java qui permet de générer des rapports de code coverage au format xml et html.
L’intérêt sera souvent de donner le rapport au format xml à d’autres outils (Codecov ou Sonar par exemp...
Introduction
Dans nos applications, il y a souvent des objets qui dépendent les uns des autres (un Service avec des Repository par exemple). Si on devait satisfaire ces dépendances “à la main”, on devrait les instancier, vérifier que ça n’ait pas ...