com.mysql.jdbc.PreparedStatement är en intern klass till MySQL 5.x JDBC-drivrutinen. Din kod bör inte importera den. Den bör använda standarden java.sql.PreparedStatement klass istället.
Paketnamnen har ändrats i MySQL 8.x JDBC-drivrutinerna, och det var det som gjorde att din kod började ge kompileringsfel.
Lösning:
-
Fixa din kod så att den inte importerar några MySQL-implementeringsklasser. Använd
java.sql.*ochjavax.sql.*klass istället. -
Ändra dina projektberoenden så att MySQL-drivrutinen JAR inte är ett kompileringstidsberoende. Att göra det kommer att orsaka oavsiktliga Källkodsberoenden på JDBC-drivrutiner ska flaggas som kompileringsfel. Det kommer också att stoppa din IDE från att ge felaktiga förslag för
importuttalanden. (Min gissning är att det var så den falska importen kom in i din kodbas.) -
Om din kod (fortfarande) använder
Class.forNameför att ladda JDBC-drivrutinen, ändra den till att användajava.sql.DriverManageristället; se javadoc . På så sätt kommer du inte att brännas av ytterligare en ändring i MySQL-drivrutinsklassnamnet.