両方のクラスがコンパイル時のクラスパスに存在し、IDEが役立つように努めていたためです。
prepareStatement()
指定
java.sql.PreparedStatement
を返す 、com.mysql.jdbc.PreparedStatement
ではありません 。
java.sql.PreparedStatement
インターフェースです そして、これを常に使用する必要があります。 MySQLは具体的な実装であり、JDBCコードをMySQL固有の実装に緊密に結合しないでください。そうしないと、DBサーバー(したがってJDBCドライバーも)をPostgreSQLなどの別のベンダーに切り替えたい場合は、コードに多くの変更を加える必要があります。 java.sql
の標準JDBCインターフェースを使用している場合 常にパッケージ化する場合、変更する必要があるのはJDBC URLのみであり、ユーザー名とパスワード、およびDB固有のSQLステートメントも含まれる可能性があります。