com.mysql.jdbc.PreparedStatement
è una classe interna al driver JDBC MySQL 5.x. Il tuo codice non dovrebbe importarlo. Dovrebbe utilizzare lo standard java.sql.PreparedStatement
classe invece.
I nomi dei pacchetti sono cambiati nei driver JDBC di MySQL 8.x e questo è ciò che ha fatto sì che il tuo codice iniziasse a dare errori di compilazione.
Soluzione:
-
Correggi il tuo codice in modo che non importi alcuna classe di implementazione MySQL. Usa
java.sql.*
ejavax.sql.*
classe invece. -
Modifica le dipendenze del tuo progetto in modo che il JAR del driver MySQL non sia una dipendenza in fase di compilazione. Ciò causerà qualsiasi accidentale le dipendenze del codice sorgente sui driver JDBC da contrassegnare come errori di compilazione. Inoltre impedirà al tuo IDE di fornire suggerimenti errati per l'
import
dichiarazioni. (La mia ipotesi è che è così che l'importazione fasulla è entrata nella tua base di codice.) -
Se il tuo codice sta (ancora) utilizzando
Class.forName
per caricare il driver JDBC, modificalo per utilizzarejava.sql.DriverManager
invece; vedere javadoc . In questo modo non verrai bruciato da un'altra modifica nel nome della classe del driver MySQL.