# Java > Gnral Java > Persistance des donnes >  livrable d'une application desktop Java avec une base de donnes relationnelle comprise dedans

## dorus-one

Salut  tous,

J'aimerais pouvoir grer des donnes relationnelles  travers mon application desktop. Il existe des tas de solutions diffrentes mais j'aimerais pouvoir fournir  l'utilisateur final un excutable d'installation avec cette fameuse solution de base de donnes relationnelles fourni. Et j'avoue avoir quelques difficults  choisir ma solution pour les raisons suivantes :

 J'ai besoin que les donnes soient persistes. A la fermeture de l'application, rien ne se perd et  la rouverture de celle-ci, l'utilisateur retrouve l'ensemble de ces donnes.Le terme de database "embedded" est tendancieux je trouve. Car on ne sait jamais si cela signifie uniquement du "in-memory" mode ou si la base peut tre malgr tout persister (comme un fichier SQLite par exemple). Ainsi que la base soit embedded ou non, m'importe peu, du moment que je puisse construire un excutable d'installation avec cet base. Beaucoup d'explications existent sur internet quant  l'utilisation des solutions existantes mais trs rarement d'explications sur comment fournir  l'utilisateur final les solutions retenus par le dveloppeur (qui peut facilement faire tout ce qu'il veut en interne mais il faut livrer sa solution ensuite...). Ainsi ma principale contrainte rside avant tout dans le fait de pouvoir fournir un excutable qui installera cette solution. Apparemment il existe des outils qui implmente JPA pour grer ces donnes et me faciliteraient le travail. Quel serait la solution la plus usit, prouv ? Hibernate ?  

Ainsi avec ces diffrentes remarques pourriez-vous me dire comment intgrer  la livraison de mon application  l'utilisateur final, une base de donnes relationnelles persistante ? Y'a t-il des technologies plus facile  fournir dans une installation que d'autres ? Quel est la philosophie pour crer cette installeur ? Launch4j est-il capable de grer cela ? Bien entendu il ne s'agit pas de dire  l'utilisateur de d'abord installer de son cot indpendamment une base de donnes avant de pouvoir utiliser mon application mais au contraire fournir un installeur cl en main qui fournirait tous ce dont l'application  besoin.

J'aimerais pouvoir cibler au mieux les outils  utiliser en pensant surtout  la livraison avant de commencer  les implmenter...

La question peut paraitre vidente ou banale mais quand on arrive dans un nouvel eco-system technique c'est toujours bon d'avoir des retours verbaux et subjectifs dans sa langue maternelle  :;): 

Merci  vous de votre clairage.

----------


## VirgApps

Bonjour,

Par le pass j'ai eu un besoin similaire au tien et je m'tais tourn vers HSQLDB (http://hsqldb.org/).
L'application a longtemps tourn chez les utilisateurs sans aucun souci (et tourne peut tre encore) et cette bdd embarque est toujours maintenue en 2021.
De mmoire, HSQLDB est simplement un ensemble de fichiers dans un rpertoire spcifique qui fera donc partie de ton installation si tu utilises le mode "file" plutt que "memory" (qui lui peut tre utile pour tes tests ou ton dveloppement).

Cot dev Java, cela s'exploite de la mme manire qu'une bdd "remote" si ce n'est la connexion qui ne se fait pas sur une URL mais un path vers ta base.

Autrement oui, Hibernate est une bonne solution pour mapper les donnes  tes entits Java, tout ce que tu trouveras comme tuto sur le sujet s'applique sans problme  une bdd embarque.

----------

