sql >> Databáze >  >> RDS >> Mysql

po upgradu JAR nelze najít symbol PreparedStatement

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í:

  1. Opravte svůj kód tak, aby neimportoval žádné implementační třídy MySQL. Použijte java.sql.* a javax.sql.* místo toho.

  2. 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.)

  3. Pokud váš kód (stále) používá Class.forName pro načtení ovladače JDBC jej změňte na java.sql.DriverManager namísto; viz javadoc . Tímto způsobem vás nespálí další změna názvu třídy ovladače MySQL.



  1. předání LIMIT jako parametrů MySQL sproc

  2. NASTAVIT ZAPOČET NA použití

  3. Rychlost klíčového slova IN v MySQL/PostgreSQL

  4. Skládání zásobníku – Zjednodušte nasazení kontejnerů MySQL v Dockeru