Тъй като и двата класа присъстваха във вашия път на класа по време на компилиране и вашата IDE се опитваше да бъде полезна.
Тъй като prepareStatement()
е посочено
да върне java.sql.PreparedStatement
, а не com.mysql.jdbc.PreparedStatement
.
java.sql.PreparedStatement
е синтерфейс и трябва да използвате това през цялото време. MySQL е конкретна реализация и не трябва да свързвате тясно своя JDBC код със специфичната реализация на MySQL. В противен случай ще трябва да направите много промени в кода си, ако някога искате да превключите DB сървъра (и по този начин също и JDBC драйвера) към друг доставчик като PostgreSQL. Ако използвате стандартните JDBC интерфейси от java.sql
пакет през цялото време, всичко, което ще трябва да промените, е само URL адреса на JDBC и може би също потребителското име и парола и някои специфични за DB SQL изрази.