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

Servlets/JSP Java Discussion :

Modification des données avec hibernate


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut Modification des données avec hibernate
    Slt les amis, je veux savoir s'il ya qlq1 qui a déja fait un update avec les methodes jenerées par hibernate(les methodes comme: le save, le delete qui se genere automatiquement par hibernate) sur struts,jutilise hibernate 3.1,

  2. #2
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    oui je l'ai deja fait (avec les méthodes hibernate générées avec MyEclipse).
    Pourquoi? plus de précision pour que je puise t'aider.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    En fait le code que je viens de citer me plait pas car ce qu'il fait c'est juste il recherche dans BD du donnée à modifier, il le charge, tu apporte ta modification sur cet objet et par suite tu fais le commit et oups ça se modifit!!!!

  4. #4
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Oui mais quel est le code et que veus tu faire ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    je sais pas car si je le savais j'aurais pas du le demander.
    Donnes moi ce que t'as fais toi pour la modification,si tu veux biensur.
    Moi mon code marche hyperbien mais je me suis dis si il y'a un code plus optimisé pouquoi pas!!!!

  6. #6
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
                    Candidat candidat = new Candidat();
     
     
    		candidat.setLogin(getLogin());
    		candidat.setPassword(getPassword());
    		candidat.setPasswordconfirme(getPasswordconfirme());
    		candidat.setEmail(getEmail());
    		candidat.setConfirme("non");
    		candidat.setNom(getNom());
    		candidat.setPrenom(getPrenom());
    		candidat.setSex(getSex());
    		candidat.setAge(getAge());
    		candidat.setProfession(getProfession());
    		candidat.setDepartement(getDepartement());
     
     
    		try{
     
     
    		CandidatDAO dao = new CandidatDAO();
     
    		Transaction tx =  dao.getSession().beginTransaction();
     
     
    		dao.save(candidat);
     
    		tx.commit();
     
    		dao.getSession().close();
    Candidat est une classe mapper avec une tanble CANDIDAT, il faut remplir tout les champs. ici je l'ai fait avec get... provenant de inputtext à remplir

    Voila expérant avoir répondue à ton message

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Mais ce code sert pour l'insertion et non pas pour la modification!!!!

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    en fait j'ai une remarque sur ton code:
    vaut mieu mettre le comit dans la classe DAO generer com ainsi que le try com ca t'auras pas obligé à le mettre chaque fois que tu veux faire de l'ajout

  9. #9
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    C'est casiment pareil pour la modif.ici je modify le tuple ayant emailconfirmant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    CandidatDAO dao = new CandidatDAO();
    		List candidatconfirme = dao.findByEmail(emailconfirmant);
     
    		if (candidatconfirme.size()!=0) {
    		Candidat candidat = (Candidat) candidatconfirme.get(0);
    		candidat.setLogin(candidat.getLogin());
    		candidat.setPassword(candidat.getPassword());
    		candidat.setPasswordconfirme(candidat.getPasswordconfirme());
    		candidat.setEmail(candidat.getEmail());
    		candidat.setConfirme("oui");
    		candidat.setNom(candidat.getNom());
    		candidat.setPrenom(candidat.getPrenom());
    		candidat.setSex(candidat.getSex());
    		candidat.setAge(candidat.getAge());
    		candidat.setProfession(candidat.getProfession());
    		candidat.setDepartement(candidat.getDepartement());
     
     
    		Transaction tx = dao.getSession().beginTransaction();
    		dao.save(candidat);
    		tx.commit();
    		dao.getSession().close();

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Non c'est pas la meme chose car dans mon cas j'ai une clé "auto-increment" donc je ferais ce code yaurais pas de modificattion mais l'ajout d'un nouveau enregistrement.
    toi ce que tu fais c'est ecrasé un enregistrement par le nouveau et ceci c'est pas unee modification.
    Tu vois ce que je voulais dire?

  11. #11
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh... ici il s'agit bien d'une modif ...
    Mais soit je comprends rien, soit toutes les lignes du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    candidat.setLogin(candidat.getLogin());
    ne servent strictement à rien ...

  12. #12
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		try {
    			Query q=HibernateSessionFactory.getSession().createSQLQuery("select max(idcandidat) from Candidat");
    			;candidat.setIdcandidat(( (Integer) q.list().get(0))+Integer.valueOf(1));
    		} catch (Exception e) {candidat.setIdcandidat(Integer.valueOf(1));}
    Moi je fais comme ca, Si le Query ne donne rien car la table Candidat est vide, il y a une exception, alors je met que l'id clée primare prend la valeur 1.
    Si la table Candidat n'est pas vide, le Query donne le maximum de la clée Idcandidat auquel je rajoute 1.

  13. #13
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    oui c'est une modif mais comme je suis maniaque je met les candidat.set qui ne servent à rien en effet.

  14. #14
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    ca marche pour toi car t'as le idcondidat com clé de ta table si la clé etait auto-increment...

  15. #15
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Ben moi j'utilise mysql5. Et il y a une polémique sur le forum. certains disent qu'avec mysql on ne peut pas auto increment un attribut, d'autre disent que oui. Voila si tu utilise Mysql. Moi je sais pas alors je gere tout seul l'incrémentation et ca marche. Pas de doublon ect...
    essais http://www.anewhope.eu

Discussions similaires

  1. Problème de chargement des données avec hibernate
    Par nasnet dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 02/07/2013, 17h46
  2. [Core] Apprendre à traiter des quantités importantes de données avec Hibernate
    Par Mickael Baron dans le forum Hibernate
    Réponses: 0
    Dernier message: 17/05/2012, 11h39
  3. La persistance des données avec Hibernate
    Par L'aigle de Carthage dans le forum Débuter
    Réponses: 3
    Dernier message: 14/02/2012, 09h02
  4. modification de donnée avec historique des modifications
    Par frans_2000 dans le forum Modélisation
    Réponses: 2
    Dernier message: 30/12/2007, 12h10
  5. Réponses: 7
    Dernier message: 09/07/2007, 21h14

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