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
import
uttalanden. (Min gissning är att det var så den falska importen kom in i din kodbas.) -
Om din kod (fortfarande) använder
Class.forName
för att ladda JDBC-drivrutinen, ändra den till att användajava.sql.DriverManager
istället; se javadoc . På så sätt kommer du inte att brännas av ytterligare en ändring i MySQL-drivrutinsklassnamnet.