Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la différence entre le package com.mysql.jdbc.PreparedStatement ; et java.sql.PreparedStatement ?

Parce que les deux classes étaient présentes dans votre chemin de classe à la compilation et que votre IDE essayait d'être utile.

Parce que prepareStatement() est spécifié pour renvoyer java.sql.PreparedStatement , pas com.mysql.jdbc.PreparedStatement .

Le java.sql.PreparedStatement est une interface et vous devriez l'utiliser tout le temps. Celui de MySQL est une implémentation concrète et vous ne devriez pas associer étroitement votre code JDBC à l'implémentation spécifique de MySQL. Sinon, vous devrez apporter de nombreuses modifications à votre code si jamais vous souhaitez basculer le serveur de base de données (et donc également le pilote JDBC) vers un autre fournisseur tel que PostgreSQL. Si vous utilisez les interfaces JDBC standard de java.sql tout le temps, tout ce que vous auriez besoin de changer est uniquement l'URL JDBC et peut-être aussi le nom d'utilisateur et le mot de passe et certaines instructions SQL spécifiques à la base de données.

Voir aussi :