com.mysql.jdbc.PreparedStatement jest wewnętrzną klasą sterownika MySQL 5.x JDBC. Twój kod nie powinien go importować. Powinien używać standardowego java.sql.PreparedStatement zamiast klasy.
Nazwy pakietów uległy zmianie w sterownikach MySQL 8.x JDBC i to właśnie spowodowało, że Twój kod zaczął dawać błędy kompilacji.
Rozwiązanie:
-
Napraw swój kod, aby nie importował żadnych klas implementacji MySQL. Użyj
java.sql.*ijavax.sql.*zamiast klasy. -
Zmień zależności projektu, aby sterownik MySQL JAR nie był zależnością czasu kompilacji. Spowoduje to wszelkie przypadkowe zależności kodu źródłowego od sterowników JDBC, które mają być oznaczone jako błędy kompilacji. Uniemożliwi to również Twojemu IDE generowanie nieprawidłowych sugestii dotyczących
importsprawozdania. (Domyślam się, że w ten sposób fałszywy import trafił do twojej bazy kodu.) -
Jeśli twój kod (nadal) używa
Class.forNameaby załadować sterownik JDBC, zmień go najava.sql.DriverManagerzamiast; zobacz javadoc . W ten sposób nie zostaniesz spalony przez kolejną zmianę nazwy klasy sterownika MySQL.