java - ओडीबीसी के बिना जावा से एक्सेस डेटाबेस को मैनिपुलेट करना



ms-access ucanaccess (1)

मैं अपने जावा प्रोजेक्ट से एक माइक्रोसॉफ्ट एक्सेस डेटाबेस (.accdb या .mdb फ़ाइल) में हेरफेर करना चाहता हूं। मैं जेडीबीसी-ओडीबीसी ब्रिज और माइक्रोसॉफ्ट से एक्सेस ओडीबीसी ड्राइवर का उपयोग नहीं करना चाहता क्योंकि:

  • जेडीबीसी-ओडीबीसी ब्रिज जावा एसई 8 से हटा दिया गया है और समर्थित नहीं है (रेफरी: here ),
  • जेडीबीसी-ओडीबीसी ब्रिज एक्सेस ओडीबीसी ड्राइवर के साथ ठीक से काम नहीं करता है जब टेक्स्ट में यू + 00 एफएफ (रेफरी: here ) के ऊपर कोड पॉइंट वाले यूनिकोड वर्ण शामिल होते हैं, इसलिए ऐसा सेटअप ग्रीक, रूसी, चीनी जैसे वर्णों को संभालने में सक्षम नहीं होगा , अरबी, आदि,
  • माइक्रोसॉफ्ट से एक्सेस ओडीबीसी ड्राइवर केवल विंडोज़ में काम करता है, और
  • एक्सेस डेटाबेस इंजन (और ओडीबीसी ड्राइवर) के अलग-अलग 32-बिट और 64-बिट संस्करण हैं जो तैनाती के लिए उपद्रव हो सकते हैं।

मैंने UCanAccess नामक एक्सेस डेटाबेस के लिए जेडीबीसी ड्राइवर का उल्लेख करने वाले अन्य उत्तरों को देखा है। इस दृष्टिकोण का उपयोग करने के लिए मैं अपनी जावा प्रोजेक्ट कैसे स्थापित कर सकता हूं?

(जावा से एक्सेस डेटाबेस के साथ काम करने के बेहतर तरीकों का सुझाव देने वाले उत्तरों का भी स्वागत है।)


UCanAccess एक शुद्ध जावा जेडीबीसी ड्राइवर है जो हमें ओडीबीसी का उपयोग किए बिना एक्सेस डेटाबेस से पढ़ने और लिखने की अनुमति देता है। इन कार्यों को करने के लिए यह दो अन्य पैकेज, Jackcess और HSQLDB का उपयोग करता है। निम्नलिखित इसे स्थापित करने के तरीके के बारे में एक संक्षिप्त अवलोकन है।

विकल्प 1: मेवेन का उपयोग करना

यदि आपकी प्रोजेक्ट मेवेन का उपयोग करती है तो आप निम्नलिखित निर्देशांक के माध्यम से बस यूकैनएप को शामिल कर सकते हैं:

groupId: net.sf.ucanaccess
artifactId: ucanaccess

विकल्प 2: मैन्युअल रूप से अपनी परियोजना में जेएआर जोड़ना

जैसा ऊपर बताया गया है, यूकैनएप के लिए जैकस और एचएसक्यूएलडीबी की आवश्यकता है। जैकस की बदौलत अपनी dependencies । तो UCanAccess का उपयोग करने के लिए आपको निम्न घटकों को शामिल करने की आवश्यकता होगी:

UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, संस्करण 2.2.5 या नया)
Jackcess (जैकस-2.xxjar)
commons-lang (कॉमन्स-लैंग-2.6.जर, या नया 2.x संस्करण )
commons-logging (कॉमन्स-लॉगिंग-1.1.1.jar, या नया 1.x संस्करण )

सौभाग्य से, UCanAccess में सभी आवश्यक JAR फ़ाइलों को अपनी वितरण फ़ाइल में शामिल किया गया है। जब आप इसे अनजिप करते हैं तो आपको कुछ दिखाई देगा

ucanaccess-4.0.1.jar  
  /lib/
    commons-lang-2.6.jar  
    commons-logging-1.1.1.jar  
    hsqldb.jar  
    jackcess-2.1.6.jar

आपको बस अपनी परियोजना में सभी पांच (5) जेएआर जोड़ना है।

नोट: यदि आप अन्य पांच (5) जेएआर फाइलें जोड़ रहे हैं तो loader/ucanload.jar को अपने बिल्ड पथ में जोड़ें। UcanloadDriver क्लास केवल विशेष परिस्थितियों में उपयोग किया जाता है और एक अलग सेटअप की आवश्यकता होती है। विवरण के लिए here संबंधित उत्तर देखें।

ग्रहण: पैकेज एक्सप्लोरर में प्रोजेक्ट पर राइट-क्लिक करें और Build Path > Configure Build Path... । पांच (5) जारों में से प्रत्येक को जोड़ने के लिए "बाहरी जार जोड़ें ..." बटन पर क्लिक करें। जब आप अपना जावा बिल्ड पथ समाप्त कर लें तो ऐसा कुछ दिखना चाहिए

नेटबीन: अपनी परियोजना के लिए पेड़ दृश्य का विस्तार करें, "पुस्तकालय" फ़ोल्डर पर राइट-क्लिक करें और "JAR / फ़ोल्डर जोड़ें ..." चुनें, फिर JAR फ़ाइल पर ब्राउज़ करें।

सभी पांच (5) जेएआर फाइलों को जोड़ने के बाद "पुस्तकालय" फ़ोल्डर को इस तरह कुछ दिखना चाहिए:

IntelliJ IDEA: मुख्य मेनू से File > Project Structure... चुनें। "पुस्तकालय" फलक में "जोड़ें" ( + ) बटन क्लिक करें और पांच (5) JAR फ़ाइलें जोड़ें। एक बार ऐसा करने के बाद परियोजना को इस तरह कुछ दिखना चाहिए:

बस!

अब इस तरह कोड का उपयोग कर .accdb और .mdb फ़ाइलों में "यू एक्सेस एक्सेस" डेटा

// assumes...
//     import java.sql.*;
Connection conn=DriverManager.getConnection(
        "jdbc:ucanaccess://C:/__tmp/test/zzz.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [LastName] FROM [Clients]");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

प्रकटीकरण

इस प्रश्नोत्तर को लिखने के समय मुझे UCanAccess प्रोजेक्ट में कोई भागीदारी या संबद्धता नहीं थी; मैंने अभी इसका इस्तेमाल किया। मैं तब से परियोजना में योगदानकर्ता बन गया हूं।





ucanaccess