Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

tidak dapat menemukan simbol PreparedStatement setelah pemutakhiran JAR

com.mysql.jdbc.PreparedStatement adalah kelas internal untuk driver MySQL 5.x JDBC. Kode Anda tidak boleh mengimpornya. Itu harus menggunakan java.sql.PreparedStatement standar sebagai gantinya.

Nama paket telah berubah di driver MySQL 8.x JDBC, dan itulah yang menyebabkan kode Anda mulai memberikan kesalahan kompilasi.

Solusi:

  1. Perbaiki kode Anda sehingga tidak mengimpor kelas implementasi MySQL. Gunakan java.sql.* dan javax.sql.* sebagai gantinya.

  2. Ubah dependensi proyek Anda sehingga JAR driver MySQL bukan dependensi waktu kompilasi. Melakukan hal itu akan menyebabkan ketidaksengajaan dependensi kode sumber pada driver JDBC untuk ditandai sebagai kesalahan kompilasi. Ini juga akan menghentikan IDE Anda dari membuat saran yang salah untuk import pernyataan. (Dugaan saya adalah begitulah cara impor palsu masuk ke basis kode Anda.)

  3. Jika kode Anda (masih) menggunakan Class.forName untuk memuat driver JDBC, ubah menggunakan java.sql.DriverManager alih-alih; lihat javadoc . Dengan begitu Anda tidak akan terpengaruh oleh perubahan lain pada nama kelas driver 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. Bidang MySQL DATETIME memotong ISO8601

  2. Menghitung waktu eksekusi Query Mysql berdasarkan jumlah record

  3. Laravel 4:login khusus dan periksa kata sandi

  4. Sisipan basis data asinkron - python + mysql

  5. MySQL menyertakan nol baris saat menggunakan COUNT dengan GROUP BY