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
import
udsagn. (Mit gæt er, at det var sådan den falske import kom ind i din kodebase.) -
Hvis din kode (stadig) bruger
Class.forName
for at indlæse JDBC-driveren skal du ændre den til at brugejava.sql.DriverManager
i stedet; se javadoc . På den måde bliver du ikke brændt af endnu en ændring i MySQL-driverklassens navn.