यह इसे पंजीकृत करता है क्योंकि यह कक्षा को स्मृति में लोड करता है और कक्षा के स्थिर प्रारंभकर्ताओं को चलाता है। स्टैटिक इनिशियलाइज़र कोड तब JDBC फ्रेमवर्क में "हाय देयर, आई एम ए जेडीबीसी ड्राइवर" कहने के लिए कॉल करता है (DriverManager.registerDriver
)।
उदा., ड्राइवर वर्ग अस्पष्ट दिखेगा इस तरह:
package com.example.jdbc;
import java.sql.DriverManager;
public class Driver implements java.sql.Driver {
static {
DriverManager.registerDriver(new Driver());
}
// ...implementation...
}
फिर जब आप Class.forName("com.example.jdbc.Driver")
. करते हैं , यह कक्षा को लोड करता है और स्थिर प्रारंभकर्ता चलाता है, जो एक उदाहरण बनाता है और इसे DriverManager
के साथ पंजीकृत करता है ।
मुझे ध्यान देना चाहिए कि जैसा कि एंड्रियास कहते हैं , आधुनिक JDBC ड्राइवरों को आपको ऐसा करने की आवश्यकता नहीं है।