Bonsoir,

Je fais un formulaire, dont les valeurs des champs sont insérées (ou consultées) dans une BD SQL Server.
Or, quand l'utilisateur tape un nom avec une apostrophe, cela créé un problème car cela "déforme" la requête SQL résultant de la saisie (injection SQL).

On m'a dit que le preparedStatement évite ces désagréments. J'ai donc lu la FAQ JDBC concernant les PreparedStatement :
http://java.developpez.com/faq/jdbc/...paredstatement

J'aurais quelques questions :
1 - comment le prepared statement évite-t-il ces désagréments ? Suffit-t-il juste d'utiliser la fonction setObject ? Car s'il faut analyser et modifier soit même ce qu'on insère, quel est l'intérêt du PreparedStatement, par rapport à un Statement au niveau de la sécurité ?

2 - J'ai un champ avec une autocomplétion : à chaque chiffre saisi, on charge les drivers JDBC, on se connecte à la base, on sélectionne les 10 premières villes correspondantes avec un simple Statement, puis on referme la connexion.
S'affiche alors en pré-saisie une liste de villes de la BD dont le code postal commence par la saisie.
Y a-t-il moyen d'optimiser ça ?


Merci pour votre aide.