Mysql
 sql >> Database >  >> RDS >> Mysql

impossibile trovare il simbolo PreparedStatement dopo l'aggiornamento JAR

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:

  1. Correggi il tuo codice in modo che non importi alcuna classe di implementazione MySQL. Usa java.sql.* e javax.sql.* classe invece.

  2. 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.)

  3. Se il tuo codice sta (ancora) utilizzando Class.forName per caricare il driver JDBC, modificalo per utilizzare java.sql.DriverManager invece; vedere javadoc . In questo modo non verrai bruciato da un'altra modifica nel nome della classe del driver MySQL.