com.mysql.jdbc.PreparedStatement is een interne klasse voor het MySQL 5.x JDBC-stuurprogramma. Uw code zou deze niet moeten importeren. Het zou de standaard java.sql.PreparedStatement . moeten gebruiken klas in plaats daarvan.
De pakketnamen zijn gewijzigd in de MySQL 8.x JDBC-stuurprogramma's en dat is de reden dat uw code compilatiefouten begon te geven.
Oplossing:
-
Corrigeer uw code zodat deze geen MySQL-implementatieklassen importeert. Gebruik de
java.sql.*enjavax.sql.*klas in plaats daarvan. -
Wijzig uw projectafhankelijkheden zodat het MySQL-stuurprogramma JAR geen afhankelijkheid is tijdens het compileren. Als u dat doet, veroorzaakt dit per ongeluk afhankelijkheden van broncode van JDBC-stuurprogramma's worden gemarkeerd als compilatiefouten. Het zal ook voorkomen dat uw IDE onjuiste suggesties doet voor
importverklaringen. (Mijn gok is dat de nep-import zo in je codebase is gekomen.) -
Als uw code (nog) gebruikmaakt van
Class.forNameom het JDBC-stuurprogramma te laden, wijzigt u het injava.sql.DriverManagerin plaats van; zie javadoc . Op die manier wordt u niet verbrand door een nieuwe wijziging in de naam van de MySQL-stuurprogrammaklasse.