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

Struts 1 Java Discussion :

Problème récupération données struts/hibernate


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut Problème récupération données struts/hibernate
    bonjour à tous,

    je veux m'assurer de l'existence des données dans ma BD MySQL via Hibernate,
    mais ceci m'affiche des erreurs,

    org.hibernate.exception.GenericJDBCException: could not execute query
    je ne sais pas d'ou vient l'erreur, je suis un peu perdu,

    voici le code de mon action:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
     
    		UserLoginForm userLoginForm = (UserLoginForm) form; 
     
    		// instanciation d'objet utilisateur
    		utilisateur util = new utilisateur();
     
    		// récupération des champs de la BD
     
    		id=utilisateur.getIdUtilisateur();
    		email=utilisateur.getEmailUtilisateur();
    		password=utilisateur.getPasswordUtilisateur();
     
    		//récupération des champs du formulaire
     
    		mailF=userLoginForm.getUserName();
    		passF=userLoginForm.getPassword();
     
     
    		//instanciation de DAO utilisateur
     
    		utilisateurDAO daoutil= new utilisateurDAO();
     
     
    		Transaction tx1=daoutil.getSession().beginTransaction();
     
    		//traitement
     
    		L1 = daoutil.findByEmailUtilisateur(userLoginForm.getuserMail());
     
     
    		if( L1 != null )
    		{
    			mapping.findForward("succcess");
     
    		}
    		else
    		{
    			request.setAttribute("test", " error");
    			mapping.findForward("failure");
    		}
     
    		daoutil.save(utilisateur);
     
     
    		tx1.commit();
     
     
    		daoutil.getSession().close();
     
    		return mapping.findForward("success"); 
    	}
    Merci pour vos réponses.

  2. #2
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    Salut,

    Post peut-être la stackTrace entière, ici c'est un peu peu pour pouvoir dire quoi que ce soit :-)

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    peux-tu aussi mettre le code de la fonction findByEmailUtilisateur() de la class UtilisateurDAO.

    par ailleurs, les objets en Java doivent "normalement" commencer par une majuscule =>
    Utilisateur au lieu de utilisateur
    UtilisateurDAO au lieu de utilisateurDAO

  4. #4
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    par ailleurs, les objets en Java doivent "normalement" commencer par une majuscule
    classes plutôt ^^

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    re salut les amis

    voici la trace

    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:2148)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
    at org.hibernate.loader.Loader.list(Loader.java:2024)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    at com.youcompany.hibernate.utilisateurDAO.findByProperty(utilisateurDAO.java:87)
    at com.youcompany.hibernate.utilisateurDAO.findByPasswordUtilisateur(utilisateurDAO.java:99)
    at com.yourcompany.struts.action.UserLoginAction.execute(UserLoginAction.java:89)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
    la ligne 89 de UserLoginAction.java fait référence à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L1 = daoutil.findByPasswordUtilisateur(userLoginForm.getTXT_MotDePasse());
    et voici la méthode find by Email :
    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
      public List findByProperty(String propertyName, Object value) {
          log.debug("finding utilisateur instance with property: " + propertyName
                + ", value: " + value);
          try {
             String queryString = "from utilisateur as model where model." 
             						+ propertyName + "= ?";
             Query queryObject = getSession().createQuery(queryString);
    		 queryObject.setParameter(0, value);
    		 return queryObject.list();
          } catch (RuntimeException re) {
             log.error("find by property name failed", re);
             throw re;
          }
    	}
     
    	public List findByEmailUtilisateur(Object emailUtilisateur) {
    		return findByProperty(EMAIL_UTILISATEUR, emailUtilisateur);
    	}
    merci

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    1) pense à utiliser les balises CODE(icône # dans la barre d'outils) pour le design de ton code.
    2) peux-tu fournir les fichiers de mapping de utilisateur?

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    Citation Envoyé par mattheox Voir le message
    par ailleurs, les objets en Java doivent "normalement" commencer par une majuscule
    Citation Envoyé par bidi Voir le message
    classes plutôt ^^
    un objet java et une class java.... représente la même chose.

  8. #8
    Membre averti
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    voici le fichier:

    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
    30
    31
    32
    33
     
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping package="com.youcompany.hibernate">
        <class name="utilisateur" table="utilisateur" catalog="test">
            <id name="idUtilisateur" type="java.lang.Integer">
                <column name="id_utilisateur" />
                <generator class="identity"></generator>
            </id>
            <property name="emailUtilisateur" type="java.lang.String">
                <column name="email_utilisateur" length="200" not-null="true" />
            </property>
            <property name="passwordUtilisateur" type="java.lang.String">
                <column name="password_utilisateur" length="200" not-null="true" />
            </property>
            <property name="creationUtilisateur" type="java.util.Date">
                <column name="creation_utilisateur" length="0" not-null="true" />
            </property>
            <property name="modificationUtilisateur" type="java.util.Date">
                <column name="modification_utilisateur" length="0" />
            </property>
            <property name="nomUtilisateur" type="java.lang.String">
                <column name="nom_utilisateur" length="50" not-null="true" />
            </property>
            <property name="prenomUtilisateur" type="java.lang.String">
                <column name="prenom_utilisateur" length="50" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    peux-tu tester avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public List findByProperty(String propertyName, Object value) {
          log.debug("finding utilisateur instance with property: " + propertyName
                + ", value: " + value);
          try {
             String queryString = "from utilisateur";
             Query queryObject = getSession().createQuery(queryString);
    		 return queryObject.list();
          } catch (RuntimeException re) {
             log.error("find by property name failed", re);
             throw re;
          }
    	}
    tu as bien une liste contenant tous les utilisateurs définis en base?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème récupération données
    Par pika698 dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2010, 16h16
  2. Réponses: 1
    Dernier message: 22/04/2009, 10h37
  3. Réponses: 2
    Dernier message: 11/12/2008, 03h34
  4. Problème récupération données d'un tableau
    Par DragonicFlash dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2008, 11h43
  5. [MySQL] Problème récupération données avec apostrophe
    Par Nata31 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 21/07/2006, 16h26

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