IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Persistance des données Java Discussion :

livrable d'une application desktop Java avec une base de données relationnelle comprise dedans


Sujet :

Persistance des données Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 77
    Points : 59
    Points
    59
    Par défaut livrable d'une application desktop Java avec une base de données relationnelle comprise dedans
    Salut à tous,

    J'aimerais pouvoir gérer des données relationnelles à travers mon application desktop
    . Il existe des tas de solutions différentes mais j'aimerais pouvoir fournir à l'utilisateur final un exécutable d'installation avec cette fameuse solution de base de données relationnelles fourni. Et j'avoue avoir quelques difficultés à choisir ma solution pour les raisons suivantes :

    • J'ai besoin que les données soient persistées. A la fermeture de l'application, rien ne se perd et à la réouverture de celle-ci, l'utilisateur retrouve l'ensemble de ces données.
    • 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 exécutable d'installation avec cet base.
    • Beaucoup d'explications existent sur internet quant à l'utilisation des solutions existantes mais très rarement d'explications sur comment fournir à l'utilisateur final les solutions retenus par le développeur (qui peut facilement faire tout ce qu'il veut en interne mais il faut livrer sa solution ensuite...). Ainsi ma principale contrainte réside avant tout dans le fait de pouvoir fournir un exécutable qui installera cette solution.
    • Apparemment il existe des outils qui implémente JPA pour gérer ces données et me faciliteraient le travail. Quel serait la solution la plus usité, éprouvé ? Hibernate ?


    Ainsi avec ces différentes remarques pourriez-vous me dire comment intégrer à la livraison de mon application à l'utilisateur final, une base de données relationnelles persistante ? Y'a t-il des technologies plus facile à fournir dans une installation que d'autres ? Quel est la philosophie pour créer cette installeur ? Launch4j est-il capable de gérer cela ? Bien entendu il ne s'agit pas de dire à l'utilisateur de d'abord installer de son coté indépendamment une base de données 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 implémenter...

    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.

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    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 embarquée est toujours maintenue en 2021.
    De mémoire, HSQLDB est simplement un ensemble de fichiers dans un répertoire spécifique qui fera donc partie de ton installation si tu utilises le mode "file" plutôt que "memory" (qui lui peut être utile pour tes tests ou ton développement).

    Coté dev Java, cela s'exploite de la même manière 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 données à tes entités Java, tout ce que tu trouveras comme tuto sur le sujet s'applique sans problème à une bdd embarquée.

  3. #3
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    moi jutilise une BDD H2, pas besoin dinstaller quoi que ce soi.
    Il te faudra juste un Driver H2 que tu peux integrer dans ta solution.

    Hope this helps

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    Juin 2012
    Messages
    928
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 928
    Points : 2 637
    Points
    2 637
    Par défaut
    as tu des besoins client / serveur?

    en bd java tu as

    https://db.apache.org/derby/
    http://hsqldb.org/
    https://www.h2database.com/html/main.html

    vérifie tes besoins avant d'opter directement pour une solution orm

    tu peux avoir quelques alternative plus légère tel que

    spring-data-jdbc
    jOOQ
    MyBatis

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il est vrai que les bases H2 ou HSQLDB semblent assez pertinentes pour ton besoin.
    Mais pourquoi un ORM, tu as besoin de quelles fonctionnalités ?
    Personnellement, j'utiliserais JDBC, simple, performant, efficace... et rien à installer, il faudra juste le driver JDBC qui va avec la base retenue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/11/2015, 15h25
  2. Réponses: 5
    Dernier message: 30/05/2011, 20h46
  3. connecter une classe java avec la base de données
    Par othaymine dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 12/03/2011, 21h20
  4. Réponses: 4
    Dernier message: 09/01/2008, 00h46
  5. Réponses: 3
    Dernier message: 22/12/2005, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo