2015-10-28 9 views
5

कोड के बाद:कक्षा है .forName() तंत्र की आवश्यकता है?

Class.forName(dbDriver); // "org.postgres.Driver" or "com.mysql.jdbc.Driver" 

है/JDBC कनेक्शन खोलने के लिए जरूरी हो गया था।

मैंने सुना है कि अब आधुनिक जेडीबीसी ड्राइवरों के साथ इसकी आवश्यकता नहीं है। हालांकि मैं इसे अपने प्रोजेक्ट में नहीं हटा सकता, क्योंकि मुझे No suitable driver found अपवाद मिल रहा है। मैं postgresql-9.1-901.jdbc3.jar, जावा 7 और टॉमकैट 7 का उपयोग कर रहा हूं।

मैं Class.forName(...) निर्माण कब छोड़ सकता हूं?

+0

jdbc4 ड्राइवरों उपलब्ध हैं। चूंकि डेटाबेस और जावा के बीच जावा परत भी विकसित हुई है (नए प्रकार), सार्थक। –

+0

आप जेडीबीसी 3 ड्राइवर का उपयोग कर रहे हैं, इसमें जेडीबीसी 4 ड्राइवर लोडिंग के लिए आवश्यक सेवा फ़ाइल नहीं हो सकती है। –

उत्तर

9

कक्षा.forनाम() जेडीबीसी 4.0 के बाद से जरूरी नहीं है।

यहां Java Tutorials on JDBC से एक अंश है।

JDBC के पिछले संस्करणों में, एक कनेक्शन प्राप्त करने के लिए, आपको पहले पड़ा विधि Class.forName फोन करके अपने JDBC- ड्राइवर आरंभ कर देगा। यह विधियों को java.sql.Driver प्रकार की वस्तु की आवश्यकता होती है। प्रत्येक जेडीबीसी चालक में एक या अधिक कक्षाएं होती हैं जो इंटरफ़ेस java.sql.Driver लागू करती हैं। जावा डीबी के लिए ड्राइवर org.apache.derby.jdbc.EmbeddedDriver और org.apache.derby.jdbc.ClientDriver, और MySQL कनेक्टर/जे के लिए एक com.mysql.jdbc.Driver है। अपने डीबीएमएस ड्राइवर के दस्तावेज को पर देखें कक्षा का नाम प्राप्त करें जो इंटरफ़ेस java.sql.Driver लागू करता है।

आपके कक्षा पथ में पाए गए किसी भी जेडीबीसी 4.0 ड्राइवर स्वचालित रूप से लोड होते हैं। (हालांकि, आप मैन्युअल रूप से लोड करना होगा किसी भी ड्राइवरों विधि Class.forName साथ JDBC 4.0। से पहले)

संबंधित मुद्दे