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
import
pernyataan. (Dugaan saya adalah begitulah cara impor palsu masuk ke basis kode Anda.) -
Jika kode Anda (masih) menggunakan
Class.forName
untuk memuat driver JDBC, ubah menggunakanjava.sql.DriverManager
alih-alih; lihat javadoc . Dengan begitu Anda tidak akan terpengaruh oleh perubahan lain pada nama kelas driver MySQL.