ওডিবিসি ছাড়াই জাভা থেকে একটি অ্যাক্সেস ডাটাবেস হস্তান্তর


114

আমি আমার জাভা প্রকল্প থেকে একটি মাইক্রোসফ্ট অ্যাক্সেস ডেটাবেস (.accdb বা .mdb ফাইল) ম্যানিপুলেট করতে চাই। আমি জেডিবিসি-ওডিবিসি ব্রিজ এবং মাইক্রোসফ্ট থেকে অ্যাক্সেস ওডিবিসি ড্রাইভারটি ব্যবহার করতে চাই না কারণ:

  • জেডিবিসি-ওডিবিসি ব্রিজটি জাভা এসই 8 থেকে সরানো হয়েছে এবং এটি সমর্থিত নয় (রেফারেন্স: এখানে ),
  • জেডিবিসি-ওডিবিসি ব্রিজ অ্যাক্সেস ওডিবিসি ড্রাইভারের সাথে সঠিকভাবে কাজ করে না যখন পাঠ্যটিতে ইউ +00 এফএফ (রেফার: এখানে ) এর উপরে কোড পয়েন্ট সহ ইউনিকোড অক্ষর অন্তর্ভুক্ত থাকে , সুতরাং এই জাতীয় সেটআপ গ্রীক, রাশিয়ান, চাইনিজ হিসাবে অক্ষরগুলি পরিচালনা করতে সক্ষম হবে না , আরবি ইত্যাদি,
  • মাইক্রোসফ্ট থেকে অ্যাক্সেস ওডিবিসি ড্রাইভার কেবল উইন্ডোজে কাজ করে এবং
  • অ্যাক্সেস ডেটাবেস ইঞ্জিন (এবং ওডিবিসি ড্রাইভার) এর পৃথক 32-বিট এবং 64-বিট সংস্করণ রয়েছে যা মোতায়েনের জন্য উপদ্রব হতে পারে।

আমি অন্যান্য উত্তরগুলি দেখেছি ইউসিএনএ্যাক্সেস নামের অ্যাক্সেস ডেটাবেসগুলির জন্য একটি জেডিবিসি ড্রাইভার উল্লেখ করে । এই পদ্ধতিটি ব্যবহার করতে আমি কীভাবে আমার জাভা প্রকল্পটি সেট আপ করতে পারি?

(জাভা থেকে অ্যাক্সেস ডেটাবেসগুলির সাথে কাজ করার আরও ভাল উপায়ের পরামর্শ দেওয়া উত্তরগুলিও সবচেয়ে স্বাগত জানানো হবে would)


গর্ড আমি আপনার সাথে যোগাযোগ করতে চাই ইমেল ঠিকানা, এটা কি সম্ভব? চিয়ার্স
বোনকোডিগো

আপনি jre7 থেকে jd8c তে jdbc odbc ক্লাসগুলিও ব্যবহার করতে পারেন - স্ট্যাকওভারফ্লো দেখুন /a / 34617075/2110961
ফ্রাঙ্ক এম।

উত্তর:


160

ইউকানএ্যাক্সেস একটি খাঁটি জাভা জেডিবিসি ড্রাইভার যা ওডিবিসি ব্যবহার না করে অ্যাক্সেস ডাটাবেসগুলি থেকে আমাদের পড়তে ও লিখতে দেয়। এই কাজগুলি সম্পাদন করতে এটি দুটি আরও প্যাকেজ, জ্যাকসেস এবং এইচএসকিউএলডিবি ব্যবহার করে । এটি কীভাবে সেট আপ করবেন সে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ নীচে দেওয়া হল।

 

বিকল্প 1: ম্যাভেন ব্যবহার করে

যদি আপনার প্রকল্পটি মাভেন ব্যবহার করে তবে আপনি কেবল নীচের স্থানাঙ্কের মাধ্যমে ইউকানঅ্যাক্সেস অন্তর্ভুক্ত করতে পারেন:

গ্রুপআইডি: নেট.এসএফ.কানাকাস্যাক্স
আর্টিফ্যাক্ট আইডি : ইউকান্যাস্যাক্সেস

নীচের থেকে একটি উদ্ধৃত অংশটি রয়েছে pom.xml, <version>সর্বাধিক সাম্প্রতিক প্রকাশ পেতে আপনাকে আপডেট করতে হবে:

  <dependencies>
    <dependency>
        <groupId>net.sf.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>4.0.4</version>
    </dependency>
  </dependencies>

 

বিকল্প 2: ম্যানুয়ালি আপনার প্রকল্পে JARs যুক্ত করুন

উপরে উল্লিখিত হিসাবে, ইউকানঅ্যাক্সেসের জন্য জ্যাকসেস এবং এইচএসকিউএলডিবি প্রয়োজন। ঘুরেফিরে জ্যাক্যাক্সের নিজস্ব নির্ভরতা রয়েছে । সুতরাং ইউকানঅ্যাক্সেস ব্যবহার করতে আপনাকে নিম্নলিখিত উপাদানগুলি অন্তর্ভুক্ত করতে হবে:

ইউকানএ্যাক্সেস (ইউকান্যাক্সেস-এক্সএক্সএক্সএক্সজার)
এইচএসকিউএলডিবি (এইচএসকিএলডি.জাজার, সংস্করণ ২.২.৫ বা আরও নতুন)
জ্যাক্সেস (জ্যাক্সেস -২.এক্সএক্সজার)
কমন্স-ল্যাং (কমন্স-ল্যাং -২.6.জায়ার, অথবা আরও নতুন 2.x সংস্করণ )
কমন্স-লগিং ( কমন্স-লগিং -২.১.১.২.৩ বা নতুন 1.x সংস্করণ )

ভাগ্যক্রমে, ইউকানএ্যাক্সেস এর বিতরণ ফাইলে প্রয়োজনীয় জেআর ফাইলগুলির সমস্ত অন্তর্ভুক্ত করে। আপনি যখন এটি আনজিপ করবেন তখন আপনি এমন কিছু দেখতে পাবেন

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.jarUcanloadDriverশ্রেণী শুধুমাত্র বিশেষ পরিস্থিতিতে ব্যবহার করা হয় এবং একটি ভিন্ন সেটআপ প্রয়োজন। সম্পর্কিত উত্তর এখানে বিস্তারিত দেখুন।

গ্রহন: প্যাকেজ এক্সপ্লোরার-এ প্রকল্পটিতে ডান ক্লিক করুন এবং চয়ন করুন Build Path > Configure Build Path...। পাঁচটি (5) জার প্রতিটি যুক্ত করতে "বহিরাগত জারগুলি যোগ করুন ..." বোতামটি ক্লিক করুন। আপনি যখন শেষ করেছেন আপনার জাভা বিল্ড পাথটি দেখতে এর মতো কিছু হওয়া উচিত

BuildPath.png

নেটবিয়ানস: আপনার প্রকল্পের জন্য বৃক্ষের দৃশ্য প্রসারিত করুন, "গ্রন্থাগারগুলি" ফোল্ডারে ডান ক্লিক করুন এবং "জেআর / ফোল্ডার যুক্ত করুন ..." নির্বাচন করুন, তারপরে জেআর ফাইলটিতে ব্রাউজ করুন।

nbAddJar.png

পাঁচটি (5) জেআর ফাইল যুক্ত করার পরে "লাইব্রেরি" ফোল্ডারে এরকম কিছু দেখতে পাওয়া উচিত:

nbLibraries.png

ইন্টেলিজ আইডিএ:File > Project Structure... প্রধান মেনু থেকে চয়ন করুন । "লাইব্রেরিগুলি" ফলকে "যুক্ত করুন" ( +) বোতামটি ক্লিক করুন এবং পাঁচটি (5) জেআর ফাইল যুক্ত করুন। এটি শেষ হয়ে গেলে প্রকল্পটির এমন কিছু দেখা উচিত:

IntelliJ.png

 

এটাই!

এই জাতীয় কোড ব্যবহার করে .accdb এবং .mdb ফাইলগুলিতে এখন "U অ্যাক্সেস করতে পারেন"

// 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));
}

 

প্রকাশ

এই প্রশ্নোত্তর লেখার সময় আমি ইউকানঅ্যাক্সেস প্রকল্পের সাথে জড়িত বা অনুমোদিত ছিলাম না; আমি কেবল এটি ব্যবহার করেছি। আমি তখন থেকে এই প্রকল্পের জন্য অনুদানকারী হয়েছি।


2
এই লাইব্রেরির সাথে আপনার কোনও সম্পর্ক রয়েছে? আপনি যদি তা করেন তবে তা প্রকাশ করার উপযুক্ত হতে পারে।
জো

আপনি জাভা 8-এ কোনও এক্সেল ওয়ার্কবুক (.xlsx) এর সাথে সংযোগ স্থাপন করতে এটি ব্যবহার করতে পারেন?
স্টেইনবিটর

2
@ sємsєм ড্রাইভার ক্লাসটি হ'লnet.ucanaccess.jdbc.UcanaccessDriver
গর্ড থম্পসন

1
@ গর্ডথহম্পসন এটি একটি দুর্দান্ত উত্তর। আমার পুরো ক্লাসটি এটি ফাইল সিস্টেমের সুবিধার্থে ত্রুটি বলে বিশ্বাস করে এই সমস্যার সাথে আটকে ছিল। আমাকে ভার
বোঝাতে সাহায্য করেছিল

1
হাইবারনেট এবং স্প্রিংয়ের সাথে ইউপানঅ্যাক্সেস ডেটাসোর্সকে সংহত করার বিষয়ে কীভাবে?
ওয়ারেন এম নোকস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.