Bonjour,

Comme il m'a été conseillé dans un sujet précédent d'utiliser des "PreparedStatement" à la place de simples "Statement", je suis donc en train de faire des essais en fonction du FAQ.

J'ai un problème car NetBeans ne m'accepte pas le code qui est inscrit dans le FAQ.

Donc le FAQ dit ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
String sql = "UPDATE Stocks SET prix = ?, quantite = ? WHERE nom = ?";
//préparation de la requête
PreparedStatement preparedStatement = connection.prepareStatement(sql);
Moi j'ai écris cela (les variables url, utilisateur, motDePasse ont été définies juste avant le try) :
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
         //chargement du pilote
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            //Class.forName("mysql-connector-java-5.1.29-bin.jar");
            System.out.println("chargement pilote");
        }
        catch (ClassNotFoundException e)
        {
            System.out.println("erreur ClassNotFoundException e dans Fen1");
        }
 
        //Connection à la base de données
        try
        {
            System.out.println("connexion BDD");
            Connection connexion = DriverManager.getConnection( url, utilisateur, motDePasse );
        }
        catch (SQLException e)
        {
            System.out.println("SQLException erreur");
        }
       try
        {
            Connection connexion = DriverManager.getConnection( url, utilisateur, motDePasse );
            String sql = "SELECT * FROM client WHERE ville = ?";
            PreparedStatement prep1 = connexion.prepareStatement(sql);
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
Mais NetBeans s'oppose à mon code de la ligne 27 et me propose ceci :
Cast ... preparedStatement(...) to PreparedStatement
Change type of prep1 to PreparedStatement
Si je clique sur la première ligne (Cast ... preparedStatement(...) to PreparedStatement), NetBeans me rajoute "(PreparedStament)" comme suit et retire l'avertissement d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PreparedStatement prep1 = (PreparedStatement) connexion.prepareStatement(sql);
Si je clique sur 'Change type of prep1 to PreparedStatement), NETBeans change mon code comme suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.sql.PreparedStatement prep1 = connexion.prepareStatement(sql);
Je ne comprends pas pourquoi le code proposé par le FAQ ne convient pas à NetBeans !?!