क्योंकि दोनों वर्ग आपके कंपाइलटाइम क्लासपाथ में मौजूद थे और आपका आईडीई मददगार बनने की कोशिश कर रहा था।
क्योंकि prepareStatement() है निर्दिष्ट
लौटने के लिए java.sql.PreparedStatement , नहीं com.mysql.jdbc.PreparedStatement ।
java.sql.PreparedStatement एक इंटरफ़ेस है और आपको इसे हर समय इस्तेमाल करना चाहिए। MySQL एक एक ठोस कार्यान्वयन है और आपको अपने JDBC कोड को MySQL विशिष्ट कार्यान्वयन के साथ कसकर नहीं जोड़ना चाहिए। अन्यथा यदि आप कभी भी डीबी सर्वर (और इस प्रकार जेडीबीसी ड्राइवर) को पोस्टग्रेएसक्यूएल जैसे किसी भिन्न विक्रेता में स्विच करना चाहते हैं तो आपको अपने कोड में बहुत सारे बदलाव करने होंगे। यदि आप java.sql . से मानक JDBC इंटरफेस का उपयोग कर रहे हैं पैकेज हर समय, आपको केवल JDBC URL और शायद उपयोगकर्ता नाम और पासवर्ड और कुछ DB-विशिष्ट SQL कथन बदलने की आवश्यकता होगी।