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 :

Quand est-il favorable d'utiliser JPA ?


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut Quand est-il favorable d'utiliser JPA ?
    Bonsoir,
    D'habitude j'utilise toujours le mapping JPA avec Hibernate dans le développement web, et cette fois, il s'agit d'un développement d'application JAVA avec Swing et aussi JADE (développement agents) . En réfléchissant sur comment mieux faire mon programme, je me suis demandée quand est il favorable d'utiliser un outil de mapping/persistance comme JPA? et quand c'est non nécessaire (compliquer le travail pour rien) ? Quelqu'un pourra-t-il m'aider en répondant à ces questions?
    Dans mon programme, j'ai des multitudes de transactions avec la base de données (qui contient plusieurs tables et parfois des jointures entres trois tables)
    Merci
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,
    Citation Envoyé par janyoura Voir le message
    En réfléchissant sur comment mieux faire mon programme, je me suis demandée quand est il favorable d'utiliser un outil de mapping/persistance comme JPA? et quand c'est non nécessaire (compliquer le travail pour rien) ?
    En fait, tu dis que JPA te complique le travail, alors qu'il fait l'inverse .... tu n'as pas a gérer les connexions et le mapping bd/objet !
    Dans une application web en plus tu ne gère même pas les transactions, ce que tu dois effectivement faire dans une application qui ne s'exécute pas dans un conteneur.

    En quoi trouves tu JPA plus compliqué, que de faire du JDBC classique ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    @janyoura
    En réfléchissant sur comment mieux faire mon programme, je me suis demandée quand est il favorable d'utiliser un outil de mapping/persistance comme JPA? et quand c'est non nécessaire (compliquer le travail pour rien) ?
    JPA c'est pratique quand tu mets en place un site web, pour une application Swing un peu moins mais ça peut le faire. Par contre, que ce soit pour l'un ou l'autre des cas cités, si c'est pour mettre en place des requêtes de sélection SQL complexes (ex: sortir des statistiques), JPA ça va pas trop le faire.

    Citation Envoyé par Alkhan Voir le message
    tu n'as pas a gérer les connexions et le mapping bd/objet !
    Il faut bien sur mettre en place son datasource (avec l'hote, le user etc...). Il faut aussi créer les classes Entity, à l'image des tables dans la base.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Il faut bien sur mettre en place son datasource (avec l'hote, le user etc...).
    ce que je voulais dire, c'est que tu mes ces informations dans le persistence.xml et ensuite c'est le framework qui gère les connexion et le pool de connexion !
    Et cela fait donc moins de choses a géré que lorsque tu fais du jdbc classique.

    Citation Envoyé par Gugelhupf Voir le message
    Il faut aussi créer les classes Entity, à l'image des tables dans la base.
    Bien sur, mais le générateur dans eclipse fait ça très rapidement, même si c'est pas parfais et qu'il faut faire quelque ajustement à la main. De plus même avec JDBC tu peux très bien avoir des classes pour récupérer les données du ResultSet, ce qui en revient a avoir la même quantité de travaille.
    ce que je voulais dire surtout c'est que il ne reste plus qu'a créer les requêtes et ensuite c'est une fois de plus le framework qui gère le mapping entity/table, tu n'a plus besoin de parcourir les resultsets et faire le mapping avec tes objets !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    ce que je voulais dire, c'est que tu mes ces informations dans le persistence.xml et ensuite c'est le framework qui gère les connexion et le pool de connexion !
    Cela aurait été tellement cool si c'était le cas pour le mode Java EE, mais ce que tu dis là ne s'applique que pour le mode Java SE (d'après mes recherches). Pour le mode Java EE, il faut configurer le datasource à partir d'un fichier externe, puis indiquer dans la balise <jta-data-source> du fichier persistence.xml le nom du datasource.

    J'ai créé un topic avec des questions sur JPA, si peux m'aider n'hésite pas
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Cela aurait été tellement cool si c'était le cas pour le mode Java EE, mais ce que tu dis là ne s'applique que pour le mode Java SE (d'après mes recherches). Pour le mode Java EE, il faut configurer le datasource à partir d'un fichier externe, puis indiquer dans la balise <jta-data-source> du fichier persistence.xml le nom du datasource.
    Et bien selon moi ce que tu viens de dire n'est pas complètement vrai. Effectivement lorque tu déploie ton application dans un conteneur, tu peux demander a celui ci de géré les transaction mais concrètement rien ne t'y oblige.
    Il suffit de mettre <transaction-type="RESOURCE_LOCAL"> dans le persistence-unit et du coup tu gères les transactions comme en java SE !

    NB : je vais faire une réponse un peu plus complète dans ton sujet
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Quand est-ce qu'on utilise Class.forName ?
    Par andrianiaina dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2011, 13h06
  2. Quand est-ce qu'on utilise for(;;) ?
    Par andrianiaina dans le forum Général Java
    Réponses: 2
    Dernier message: 26/07/2011, 09h53
  3. Réponses: 0
    Dernier message: 09/12/2010, 12h32
  4. quand est ce qu'on utilise (do..while)
    Par nitch01 dans le forum Débuter
    Réponses: 2
    Dernier message: 22/12/2009, 21h18
  5. Réponses: 3
    Dernier message: 28/11/2009, 13h01

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