com.mysql.jdbc.PreparedStatement er en intern klasse til MySQL 5.x JDBC-driveren. Din kode bør ikke importere den. Det bør bruge standarden java.sql.PreparedStatement klasse i stedet for.
Pakkenavnene er ændret i MySQL 8.x JDBC-driverne, og det er det, der fik din kode til at begynde at give kompileringsfejl.
Løsning:
-
Ret din kode, så den ikke importerer nogen MySQL-implementeringsklasser. Brug
java.sql.*ogjavax.sql.*klasse i stedet for. -
Skift dine projektafhængigheder, så MySQL-driveren JAR ikke er en kompilerings-tidsafhængighed. Hvis du gør det, vil det forårsage uheld kildekodeafhængigheder på JDBC-drivere skal markeres som kompileringsfejl. Det vil også forhindre din IDE i at komme med forkerte forslag til
importudsagn. (Mit gæt er, at det var sådan den falske import kom ind i din kodebase.) -
Hvis din kode (stadig) bruger
Class.forNamefor at indlæse JDBC-driveren skal du ændre den til at brugejava.sql.DriverManageri stedet; se javadoc . På den måde bliver du ikke brændt af endnu en ændring i MySQL-driverklassens navn.