Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme executeUpdate() modifier base de donnée

    11 septembre 2022 à 11:43:47

    Bonjour j'ai  réessayer de modifier un caractère  sarah avec le 'h' je voudrais donc le changer sara sans ce 'h' dans  ma base de donnée avec le preparedStatement.executeUpdate () ,

    package com.mycompany.tennis.core;
    
    import java.sql.*;
    
    
    
    public class TestDeConnection {
        public static void main(String... args){
            Connection conn = null;
            try {
                //Seulement avant Java 7/JDBC 4
                //Class.forName(DRIVER_CLASS_NAME);
    
                //MySQL driver MySQL Connector
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tennis?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Europe/Paris","root","root");
               /* Statement statement = conn.createStatement();
                ResultSet rs = statement.executeQuery("SELECT NOM , PRENOM ,ID FROM JOUEUR WHERE ID=12");*/
                PreparedStatement preparedStatement=conn.prepareStatement("UPDATE JOUEUR SET  NOM=? , PRENOM=? ,WHERE ID=?");
                long identifiant = 24;
                String nom="Errani";
                String prenom="Sara";
                preparedStatement.setString(1,nom);
                preparedStatement.setString(2,prenom);
                preparedStatement.setLong(3,identifiant);
    
               int modifier= preparedStatement.executeUpdate();
    
               /*
                while (rs.next()){
                    final  String nom=rs.getString("NOM");
                    final  String prenom=rs.getString("PRENOM");
                    final Long id=rs.getLong("ID");
                    System.out.println("Le joueur / La joueuse reresente par le numero "+id+"est"+nom+prenom);
                }
                */
                System.out.println("EnregistrementModifier="+modifier);
                System.out.println("success");
            } catch (SQLException e) {
                e.printStackTrace();
            }
            finally {
                try {
                    if (conn!=null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

    voici erreur sur intellij :

    "C:\Program Files\Java\jdk-17.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.3\lib\idea_rt.jar=52456:C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\mouni\OneDrive\Documents\Cours cnam\core\target\classes;C:\Users\mouni\.m2\repository\mysql\mysql-connector-java\8.0.13\mysql-connector-java-8.0.13.jar;C:\Users\mouni\.m2\repository\com\google\protobuf\protobuf-java\3.6.1\protobuf-java-3.6.1.jar" com.mycompany.tennis.core.TestDeConnection
    java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID=24' at line 1
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:974)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1113)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1381)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1046)
    	at com.mycompany.tennis.core.TestDeConnection.main(TestDeConnection.java:27)
    
    Process finished with exit code 0

    ma base de donée le nom  a modifier avec ID :





    • Partager sur Facebook
    • Partager sur Twitter
      11 septembre 2022 à 16:48:01

      Bonjour,

      Tu n'es pas censé connaître l'id des éléments de ta base de donnée.

      En plus, tu te compliques la vie avec deux requêtes alors qu'une seule suffit.

      UPDATE JOUEUR
      SET PRENOM='Sara'
      WHERE NOM='Errani' AND PRENOM='Sarah';



      -
      Edité par brubru777 11 septembre 2022 à 16:49:41

      • Partager sur Facebook
      • Partager sur Twitter
        11 septembre 2022 à 17:32:41

        merci pour votre reponse ce un exercice justement qui permet de modifier sur la base de donnée mais je ne comprend pas pk j'ai ce message d'erreur a la ligne
        • Partager sur Facebook
        • Partager sur Twitter
          11 septembre 2022 à 19:50:00

          Tu as mis une virgule avant WHERE.
          • Partager sur Facebook
          • Partager sur Twitter

          Probléme executeUpdate() modifier base de donnée

          × 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