Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme insertion dans BD

Sujet résolu
    15 février 2009 à 3:01:22

    Bonjour à tous,

    Tout d'abord, voici l'objet du sujet qui m'amène aujourd'hui à vous. Je developpe actuellement une application métier permettant de gerer des données relatives au metier d'assureur.

    L'utilisateur saisit des données dans un JTextfield, puis cette valeur est ensuite récuperée dans la même classe (grace à un 'getText()').

    J'ai procédé à plusieurs tests:
    Je tiens à preciser que j'ai crée une fonction qui selon le type de requête, va l'executer de manière différente.
    Cette méthode est implémentée au sein d'une classe nommée 'MethodesInteraction.java'.
    Voici la méthode en question:
    public void excuter_rq (String rq, String type) throws SQLException {
    	         	if(type.equals("QUERY")){
    		      st = con.createStatement();
    	          rs = st.executeQuery(rq);}
    	         	
    	         	else if(type.equals("UPDATE")){
    	      	      st = con.prepareStatement(rq);
    	                rs2 = st.executeUpdate(rq);}
    	         	
    	         	else{
    	         	System.out.println("Une erreur s'est produite lors de l'execution de la requête");
    	         	}
    	          
    	          }
    


    Insertion de valeur en dur:
    mi.excuter_rq("INSERT INTO sinistres VALUES(758,789,12,12,12,12,12,12,12)","UPDATE");
    


    Cette insertion fonctionne parfaitement, mais lorsque j'essaie d'inserer les valeur saisies au préalable par l'utilisateur, il m'affiche un message d'erreur.
    J'ai donc essayé de faire un System.out.prinbtln() de mes JTextField.getText(). Il me les affiche correctement dans la console.
    Par contre lorsque j'essaie d'executer la requête suivante,:
    String rq="INSERT INTO sinistres VALUES("+this.JTnumSinistre.getText()+","+this.JTorigineSinistre.getText()+","+laiseSinistre+","+responsableSinistre+","+this.JTdateReceptionSinistre.getText()+","+this.JTdateExpertiseSinistre.getText()+","+this.JTdateEnvoiRapportSinistre.getText()+","+this.JThonorairesSinistre.getText()+","+this.JTdateReceptionHonorairesSinistre.getText()+")";
    



    Voila le résultat produit par le compilateur JAVA:

    String rq="INSERT INTO sinistres VALUES("+this.JTnumSinistre.getText()+","+this.JTorigineSinistre.getText()+","+laiseSinistre+","+responsableSinistre+","+this.JTdateReceptionSinistre.getText()+","+this.JTdateExpertiseSinistre.getText()+","+this.JTdateEnvoiRapportSinistre.getText()+","+this.JThonorairesSinistre.getText()+","+this.JTdateReceptionHonorairesSinistre.getText()+")";
    
    String type="UPDATE";
    mi.excuter_rq(rq,type);
    


    Et, voici le message d'erreur affiché:

    java.sql.SQLException: Syntax error or access violation message from server: "Erreur de syntaxe près de ', , ,,,,,)' à la ligne 1"
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
    	at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1224)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:2244)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:2192)
    	at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1259)
    	at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1205)
    	at MethodesInteraction.excuter_rq(MethodesInteraction.java:53)
    	at Enregistrement.actionPerformed(Enregistrement.java:108)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    


    Voila, mon problème, et je bute complètement sur la question, si vous avez des propositions, quelles qu'elles soient, je les accepterais avec plaisir!

    Cordialement, pierrotlezero
    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2009 à 10:56:19

      Bon viviblement je pouvais attendre.. En tous cas, si a le même problème, me concernant je plaçais les JTextField.getText() dans le constructeur ActionListener.
      Et c'etait la toute l'erreur, car il faut TOUJOURS placer les JTextfields.getText()dans la methode Action Performed().
      Et la.. magie: CA FONCTIONNE!
      • Partager sur Facebook
      • Partager sur Twitter

      Probleme insertion dans BD

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown