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:
-
Perbaiki kode Anda sehingga tidak mengimpor kelas implementasi MySQL. Gunakan
java.sql.*danjavax.sql.*sebagai gantinya. -
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
importpernyataan. (Dugaan saya adalah begitulah cara impor palsu masuk ke basis kode Anda.) -
Jika kode Anda (masih) menggunakan
Class.forNameuntuk memuat driver JDBC, ubah menggunakanjava.sql.DriverManageralih-alih; lihat javadoc . Dengan begitu Anda tidak akan terpengaruh oleh perubahan lain pada nama kelas driver MySQL.