Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der Unterschied zwischen Paket com.mysql.jdbc.PreparedStatement; und java.sql.PreparedStatement?

Weil beide Klassen in Ihrem Klassenpfad zur Kompilierzeit vorhanden waren und Ihre IDE versuchte, hilfreich zu sein.

Denn prepareStatement() ist angegeben um java.sql.PreparedStatement zurückzugeben , nicht com.mysql.jdbc.PreparedStatement .

Das java.sql.PreparedStatement ist eine Schnittstelle und Sie sollten dies die ganze Zeit verwenden. Die MySQL-Implementierung ist eine konkrete Implementierung, und Sie sollten Ihren JDBC-Code nicht eng an die MySQL-spezifische Implementierung koppeln. Andernfalls müssten Sie viele Änderungen in Ihrem Code vornehmen, wenn Sie jemals den DB-Server (und damit auch den JDBC-Treiber) auf einen anderen Anbieter wie PostgreSQL umstellen möchten. Wenn Sie die Standard-JDBC-Schnittstellen von java.sql verwenden immer nur die JDBC-URL und möglicherweise auch den Benutzernamen und das Passwort sowie einige DB-spezifische SQL-Anweisungen ändern.

Siehe auch: