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 :

Impossible de faire un update MySql


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut Impossible de faire un update MySql
    Bonjour à tous,

    Voilà je cherche à faire un update MySql lors du lancement d'un servlet. J'ai auparavant réussi à faire un update mais lorsque je fais un update simple sur un seul champs ça ne marche pas...

    Ce code ne marche pas (servlet permettant de rajouter +1 au nombre de clique sur la vidéo dans la base de données):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int id = Integer.parseInt(req.getParameter("id"));        
    Query q = em.createQuery("UPDATE Video v SET v.click = v.click+1 WHERE v.id = "+id);
    q.executeUpdate();
    Ce code marche (correspond à un autre servlet, servlet permettant d'éditer une vidéo):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            String title = req.getParameter("title");
            String url = req.getParameter("url");
            String description = req.getParameter("description");
            int id = Integer.parseInt(req.getParameter("id"));
            Category c = em.find(Category.class, Integer.parseInt(req.getParameter("category")));
     
            Query q = em.createQuery("UPDATE FROM Video v SET v.click = v.click+1, v.title = '"+title+"', v.url = '"+url+"', v.description = '"+description+"', v.category = "+c.getId()+" WHERE v.id = "+id);
            q.executeUpdate();
    La page me renvoie un message d'erreur au niveau de "q.executeUpdate()"...

    Etat HTTP 500 -

    type Rapport d''exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.persistence.TransactionRequiredException: Executing an update/delete query
    org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:96)
    fr.zeubeuz.servlet.showVideo.doGet(showVideo.java:33)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.23.

    Apache Tomcat/7.0.23

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    salut,
    tu as essayé de tester ta requête directement en base de donnée?

  3. #3
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    Oui et elle marche !

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Enlèves le dans ta requête et ça marchera mieux

  5. #5
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    Le FROM n'est pas obligatoire pour les UPDATE...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Query q = em.createQuery("UPDATE FROM Video v SET v.click = v.click + 1 WHERE v.id = "+id);
            q.executeUpdate();
    Toujours pareille :

    Etat HTTP 500 -

    type Rapport d''exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.persistence.TransactionRequiredException: Executing an update/delete query
    org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:96)
    fr.zeubeuz.servlet.showVideo.doGet(showVideo.java:34)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.23.

    Apache Tomcat/7.0.23

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query q = em.createQuery("UPDATE  Video v SET v.click := v.click + 1 WHERE v.id := "+id);
    Il fallait enlever la clause "FROM" , elle y' était toujours, et ensuite la syntaxe de tes paramètres n'est pas bonne, il fallait mettre les ":" aussi

Discussions similaires

  1. Envoyer un JsonArray de JAVA Android vers PHP serveur et faire des update mysql
    Par toufik3119 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 05/05/2014, 16h55
  2. Impossible de faire mon update
    Par Trebor_ dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/10/2012, 17h06
  3. [MySQL] probleme addslash impossible de faire d'update
    Par sampla dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 10/10/2009, 20h41
  4. [TortoiseSVN] Impossible de faire un update des fichiers disponibles sur le serveur
    Par genjy dans le forum Subversion
    Réponses: 1
    Dernier message: 31/08/2009, 00h12
  5. Réponses: 6
    Dernier message: 21/02/2008, 13h23

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