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
import
prohláš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.forName
pro načtení ovladače JDBC jej změňte najava.sql.DriverManager
namísto; viz javadoc . Tímto způsobem vás nespálí další změna názvu třídy ovladače MySQL.