com.mysql.jdbc.PreparedStatement
е вътрешен клас към MySQL 5.x JDBC драйвера. Вашият код не трябва да го импортира. Трябва да използва стандартния java.sql.PreparedStatement
клас вместо това.
Имената на пакетите са променени в JDBC драйверите на MySQL 8.x и това е причината вашият код да започне да дава грешки при компилиране.
Решение:
-
Коригирайте кода си, така че да не импортира никакви класове за изпълнение на MySQL. Използвайте
java.sql.*
иjavax.sql.*
клас вместо това. -
Променете зависимостите на вашия проект, така че JAR драйверът на MySQL да не е зависимост по време на компилиране. Правейки това ще доведе до всякакви случайни зависимостите на изходния код от JDBC драйверите да бъдат маркирани като грешки при компилиране. Освен това ще попречи на вашата IDE да прави неправилни предложения за
import
изявления. (Моето предположение е, че така фалшивият импорт е попаднал във вашата кодова база.) -
Ако вашият код (все още) използва
Class.forName
за да заредите JDBC драйвера, променете го да използваjava.sql.DriverManager
вместо; вижте javadoc . По този начин няма да бъдете изгорени от друга промяна в името на класа на MySQL драйвер.