com.mysql.jdbc.PreparedStatement
MySQL5.xJDBCドライバーの内部クラスです。あなたのコードはそれをインポートすべきではありません。標準のjava.sql.PreparedStatement
を使用する必要があります 代わりにクラス。
MySQL 8.x JDBCドライバーでパッケージ名が変更されたため、コードでコンパイルエラーが発生し始めました。
解決策:
-
MySQL実装クラスをインポートしないようにコードを修正します。
java.sql.*
を使用します およびjavax.sql.*
代わりにクラス。 -
MySQLドライバーJARがコンパイル時の依存関係にならないように、プロジェクトの依存関係を変更します。これを行うと、偶発的が発生します コンパイルエラーとしてフラグが立てられるJDBCドライバーへのソースコードの依存関係。また、IDEが
import
に対して誤った提案をするのを防ぎます。 ステートメント。 (私の推測では、それが偽のインポートがコードベースに取り込まれた方法です。) -
コードが(まだ)
Class.forName
を使用している場合 JDBCドライバーをロードするには、java.sql.DriverManager
を使用するように変更します。 代わりは; javadoc を参照してください。 。そうすれば、MySQLドライバークラス名の別の変更によって火傷することはありません。