Karena kedua kelas hadir di classpath waktu kompilasi Anda dan IDE Anda mencoba membantu.
Karena prepareStatement()
adalah ditentukan
untuk mengembalikan java.sql.PreparedStatement
, bukan com.mysql.jdbc.PreparedStatement
.
java.sql.PreparedStatement
adalah antarmuka dan Anda harus menggunakan ini sepanjang waktu. Yang MySQL adalah implementasi konkret dan Anda tidak boleh terlalu ketat menggabungkan kode JDBC Anda ke implementasi khusus MySQL. Jika tidak, Anda harus membuat banyak perubahan dalam kode Anda jika Anda ingin mengganti server DB (dan juga driver JDBC) ke vendor yang berbeda seperti PostgreSQL. Jika Anda menggunakan antarmuka JDBC standar dari java.sql
paket sepanjang waktu, yang perlu Anda ubah hanyalah URL JDBC dan mungkin juga nama pengguna dan kata sandi dan beberapa pernyataan SQL khusus DB.
Lihat juga:
- Kapan saya harus menggunakan antarmuka di jawa?
- Dalam istilah yang paling sederhana, apa itu pabrik ?