com.mysql.jdbc.PreparedStatement je interní třída ovladače MySQL 5.x JDBC. Váš kód by jej neměl importovat. Mělo by používat standardní java.sql.PreparedStatement místo toho.
Názvy balíčků se v ovladačích MySQL 8.x JDBC změnily, a to je to, co způsobilo, že váš kód začal dávat chyby při kompilaci.
Řešení:
-
Opravte svůj kód tak, aby neimportoval žádné implementační třídy MySQL. Použijte
java.sql.*ajavax.sql.*místo toho. -
Změňte své projektové závislosti tak, aby ovladač MySQL JAR nebyl závislý v době kompilace. Pokud tak učiníte, dojde k náhodě závislosti zdrojového kódu na ovladačích JDBC, které mají být označeny jako chyby kompilace. Také to zabrání vašemu IDE předkládat nesprávné návrhy pro
importprohlášení. (Hádám, že tak se falešný import dostal do vaší kódové základny.) -
Pokud váš kód (stále) používá
Class.forNamepro načtení ovladače JDBC jej změňte najava.sql.DriverManagernamísto; viz javadoc . Tímto způsobem vás nespálí další změna názvu třídy ovladače MySQL.