Mysql
 sql >> Baza danych >  >> RDS >> Mysql

nie można znaleźć symbolu PreparedStatement po aktualizacji JAR

com.mysql.jdbc.PreparedStatement jest wewnętrzną klasą sterownika MySQL 5.x JDBC. Twój kod nie powinien go importować. Powinien używać standardowego java.sql.PreparedStatement zamiast klasy.

Nazwy pakietów uległy zmianie w sterownikach MySQL 8.x JDBC i to właśnie spowodowało, że Twój kod zaczął dawać błędy kompilacji.

Rozwiązanie:

  1. Napraw swój kod, aby nie importował żadnych klas implementacji MySQL. Użyj java.sql.* i javax.sql.* zamiast klasy.

  2. Zmień zależności projektu, aby sterownik MySQL JAR nie był zależnością czasu kompilacji. Spowoduje to wszelkie przypadkowe zależności kodu źródłowego od sterowników JDBC, które mają być oznaczone jako błędy kompilacji. Uniemożliwi to również Twojemu IDE generowanie nieprawidłowych sugestii dotyczących import sprawozdania. (Domyślam się, że w ten sposób fałszywy import trafił do twojej bazy kodu.)

  3. Jeśli twój kod (nadal) używa Class.forName aby załadować sterownik JDBC, zmień go na java.sql.DriverManager zamiast; zobacz javadoc . W ten sposób nie zostaniesz spalony przez kolejną zmianę nazwy klasy sterownika MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP PDO jak uruchomić żądanie wielu zapytań?

  2. Zapytanie Mysql, które zwraca drzewo kategorii

  3. Zserializowane dane w bazie mysql muszą zostać połączone w tablicę

  4. Zastępowanie nazwy tabeli w Flask-Alchemy

  5. MySQL - policz całkowitą liczbę wierszy w php