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
import
sprawozdania. (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.forName
aby załadować sterownik JDBC, zmień go najava.sql.DriverManager
zamiast; zobacz javadoc . W ten sposób nie zostaniesz spalony przez kolejną zmianę nazwy klasy sterownika MySQL.