Eftersom båda klasserna fanns i din kompileringsväg och din IDE försökte vara till hjälp.
Eftersom prepareStatement()
är specificeras
för att returnera java.sql.PreparedStatement
, inte com.mysql.jdbc.PreparedStatement
.
java.sql.PreparedStatement
är ett gränssnitt och du borde använda detta hela tiden. MySQL-en är en konkret implementering och du bör inte koppla din JDBC-kod till den MySQL-specifika implementeringen. Annars skulle du behöva göra en hel del ändringar i din kod om du någonsin vill byta DB-servern (och därmed även JDBC-drivrutinen) till en annan leverantör som PostgreSQL. Om du använder standard JDBC-gränssnitt från java.sql
paket hela tiden, allt du behöver ändra är bara JDBC URL och kanske även användarnamn och lösenord och några DB-specifika SQL-satser.