JDBC driver
একটি জেডিবিসি ড্রাইভার একটি সফ্টওয়্যার উপাদান যা একটি জাভা অ্যাপ্লিকেশনকে একটি ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে। জেডিবিসি ড্রাইভারগুলি ওডিবিসি ড্রাইভার, ADO.NET ডেটা সরবরাহকারী এবং ওএলই ডিবি সরবরাহকারীদের অনুরূপ। পৃথক ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য, জে. ডি. বি. সি (জাভা ডেটাবেস কানেক্টিভিটি এ. পি. আই)-এর প্রতিটি ডেটাবেসের জন্য ড্রাইভার প্রয়োজন। জেডিবিসি ড্রাইভার ডাটাবেসের সাথে সংযোগ দেয় এবং ক্লায়েন্ট এবং ডাটাবেসের মধ্যে প্রশ্ন এবং ফলাফল স্থানান্তর করার জন্য প্রোটোকল প্রয়োগ করে। জেডিবিসি প্রযুক্তি চালক চারটি বিভাগের মধ্যে একটিতে ফিট করে। জেডিবিসি-ওডিবিসি ব্রিজ নেটিভ-এপিআই ড্রাইভার নেটওয়ার্ক-প্রোটোকল ড্রাইভার (মিডলওয়্যার ড্রাইভার) ডাটাবেস-প্রোটোকল ড্রাইভার (পিওর জাভা ড্রাইভার) বা থিন ড্রাইভার। টাইপ 1 ড্রাইভার-জে. ডি. বি. সি-ও. ডি. বি. সি ব্রিজ টাইপ 1 ড্রাইভার-জে. ডি. বি. সি-ও. ডি. বি. সি ব্রিজ জে. ডি. বি. সি টাইপ 1 ড্রাইভার, যা জে. ডি. বি. সি-ও. ডি. বি. সি ব্রিজ নামেও পরিচিত, একটি ডি-বেস ড্রাইভার বাস্তবায়ন যা ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য ও. ডি. বি. সি ড্রাইভারকে নিয়োগ করে। চালক জে. ডি. বি. সি পদ্ধতি কলগুলিকে ও. ডি. বি. সি ফাংশন কলগুলিতে রূপান্তরিত করে। ড্রাইভারটি প্ল্যাটফর্ম-নির্ভর কারণ এটি ওডিবিসি ব্যবহার করে যা জেভিএম যে অন্তর্নিহিত অপারেটিং সিস্টেমের উপর চলছে তার স্থানীয় লাইব্রেরির উপর নির্ভর করে। এছাড়াও, এই ড্রাইভারের ব্যবহার অন্যান্য ইনস্টলেশন নির্ভরতার দিকে পরিচালিত করে; উদাহরণস্বরূপ, ড্রাইভার সহ কম্পিউটারে ওডিবিসি ইনস্টল করা আবশ্যক এবং ডাটাবেসকে অবশ্যই একটি ওডিবিসি ড্রাইভারকে সমর্থন করতে হবে। বিশুদ্ধ-জাভা চালকের বিকল্প উপলব্ধ থাকলে এই চালকের ব্যবহার নিরুৎসাহিত করা হয়। অন্য ইঙ্গিতটি হল যে টাইপ 1 ড্রাইভার ব্যবহার করে যে কোনও অ্যাপ্লিকেশন ড্রাইভার এবং প্ল্যাটফর্মের মধ্যে বাঁধাইয়ের কারণে অ-বহনযোগ্য। এই প্রযুক্তি উচ্চ-লেনদেনের পরিবেশের জন্য উপযুক্ত নয়। টাইপ 1 ড্রাইভারগুলি সম্পূর্ণ জাভা কমান্ড সেটকে সমর্থন করে না এবং ওডিবিসি ড্রাইভারের কার্যকারিতা দ্বারা সীমাবদ্ধ। সান (এখন ওরাকল) একটি জেডিবিসি-ওডিবিসি ব্রিজ ড্রাইভার প্রদান করেছেঃ sun.jdbc.odbc.JdbcOdbcDriver। এই ড্রাইভারটি নেটিভ কোড এবং জাভা নয়, এবং এটি ক্লোজড সোর্স। জাভা 8-এ সান/ওরাকলের জে. ডি. বি. সি-ও. ডি. বি. সি ব্রিজটি সরিয়ে ফেলা হয়েছে (অন্যান্য বিক্রেতারা উপলব্ধ)। যদি কোনও ড্রাইভার এমনভাবে লেখা থাকে যাতে এটি লোড করার ফলে একটি উদাহরণ তৈরি হয় এবং সেই উদাহরণটিকে প্যারামিটার হিসাবে DriverManager.registerDriver কল করে, তবে এটি ড্রাইভার ম্যানেজারের ড্রাইভারের তালিকায় রয়েছে এবং একটি সংযোগ তৈরি করার জন্য উপলব্ধ। কখনও কখনও এমন হতে পারে যে একাধিক জেডিবিসি ড্রাইভার একটি প্রদত্ত ইউআরএল-এর সাথে সংযোগ স্থাপন করতে সক্ষম। উদাহরণস্বরূপ, একটি প্রদত্ত দূরবর্তী ডাটাবেসের সাথে সংযোগ করার সময়, একটি জে. ডি. বি. সি-ও. ডি. বি. সি ব্রিজ ড্রাইভার, একটি জে. ডি. বি. সি-থেকে-জেনেরিক-নেটওয়ার্ক-প্রোটোকল ড্রাইভার বা ডাটাবেস বিক্রেতার দ্বারা সরবরাহ করা একটি ড্রাইভার ব্যবহার করা সম্ভব হতে পারে। এই ধরনের ক্ষেত্রে, ড্রাইভারদের যে ক্রমে পরীক্ষা করা হয় তা তাৎপর্যপূর্ণ কারণ ড্রাইভার ম্যানেজার প্রথম যে ড্রাইভারটি খুঁজে পাবে সেটি ব্যবহার করবে যা প্রদত্ত ইউআরএল-এর সাথে সফলভাবে সংযোগ স্থাপন করতে পারে। প্রথমে ড্রাইভার ম্যানেজার প্রতিটি ড্রাইভারকে নিবন্ধিত ক্রমে ব্যবহার করার চেষ্টা করে। (jdbc.drivers-এ তালিকাভুক্ত ড্রাইভারগুলি সর্বদা প্রথমে নিবন্ধিত হয়।) এটি অবিশ্বস্ত কোডের যে কোনও ড্রাইভারকে এড়িয়ে যাবে যদি না সেগুলি সংযোগটি খোলার চেষ্টা করা কোডের মতো একই উৎস থেকে লোড করা হয়। এটি প্রত্যেকটিতে Driver.connect পদ্ধতিতে কল করে চালকদের পরীক্ষা করে, ব্যবহারকারী মূলত DriverManager.getConnection পদ্ধতিতে পাস করা ইউআরএলটি তাদের কাছে প্রেরণ করে। ইউ. আর. এল শনাক্তকারী প্রথম চালক সংযোগটি তৈরি করে। সুবিধা প্রায় যে কোনও ডাটাবেস যার জন্য একটি ওডিবিসি ড্রাইভার ইনস্টল করা থাকে তা অ্যাক্সেস করা যেতে পারে এবং ডেটা পুনরুদ্ধার করা যেতে পারে। অসুবিধাগুলি ওভারহেড পারফরম্যান্স যেহেতু কলগুলি জেডিবিসি (জাভা ডাটাবেস সংযোগ) সেতুর মাধ্যমে ওডিবিসি (ওপেন ডাটাবেস সংযোগ) ড্রাইভারের কাছে যেতে হয়, তারপরে নেটিভ ডাটাবেস সংযোগ ইন্টারফেসে যেতে হয় (এইভাবে অন্যান্য ধরণের ড্রাইভারের তুলনায় ধীর হতে পারে)। ক্লায়েন্ট মেশিনে ODBC ড্রাইভার ইনস্টল করা প্রয়োজন। অ্যাপলেটের জন্য উপযুক্ত নয়, কারণ ক্লায়েন্টে ওডিবিসি ড্রাইভার ইনস্টল করা প্রয়োজন। নির্দিষ্ট ওডিবিসি ড্রাইভার সব প্ল্যাটফর্মে সবসময় পাওয়া যায় না; তাই, এই ড্রাইভারের বহনযোগ্যতা সীমিত। জেডিকে 1.8 (জাভা 8) থেকে কোনও সমর্থন নেই। টাইপ 2 ড্রাইভার-নেটিভ-এপিআই ড্রাইভার জেডিবিসি টাইপ 2 ড্রাইভার, যা নেটিভ-এপিআই ড্রাইভার নামেও পরিচিত, একটি ডাটাবেস ড্রাইভার বাস্তবায়ন যা ডাটাবেসের ক্লায়েন্ট-সাইড লাইব্রেরি ব্যবহার করে। ড্রাইভার জে. ডি. বি. সি পদ্ধতি কলগুলিকে ডাটাবেস এপিআই-এর নেটিভ কলগুলিতে রূপান্তরিত করে। উদাহরণস্বরূপঃ ওরাকল ওসিআই ড্রাইভার একজন টাইপ 2 ড্রাইভার। সুবিধা যেহেতু জে. ডি. বি. সি-ও. ডি. বি. সি সেতুর কোনও বাস্তবায়ন নেই, তাই এটি টাইপ 1 চালকের তুলনায় যথেষ্ট দ্রুত হতে পারে। অসুবিধাগুলি বিক্রেতা ক্লায়েন্ট লাইব্রেরি ক্লায়েন্ট মেশিনে ইনস্টল করা প্রয়োজন। সমস্ত ডাটাবেসে ক্লায়েন্ট-সাইড লাইব্রেরি থাকে না। এই চালক প্ল্যাটফর্ম নির্ভর। এই ড্রাইভার অ্যাপলেট ছাড়া সমস্ত জাভা অ্যাপ্লিকেশন সমর্থন করে। টাইপ 3 ড্রাইভার-নেটওয়ার্ক-প্রোটোকল ড্রাইভার (মিডলওয়্যার ড্রাইভার) জেডিবিসি টাইপ 3 ড্রাইভার, যা ডাটাবেস মিডলওয়্যারের জন্য পিওর জাভা ড্রাইভার নামেও পরিচিত, একটি ডাটাবেস ড্রাইভার বাস্তবায়ন যা কলিং প্রোগ্রাম এবং ডাটাবেসের মধ্যে একটি মধ্যম স্তর ব্যবহার করে। মধ্য-স্তরের (অ্যাপ্লিকেশন সার্ভার) জে. ডি. বি. সি কলগুলিকে প্রত্যক্ষ বা পরোক্ষভাবে বিক্রেতা-নির্দিষ্ট ডাটাবেস প্রোটোকলে রূপান্তরিত করে। এটি টাইপ 4 ড্রাইভারের থেকে আলাদা যে প্রোটোকল রূপান্তর লজিক ক্লায়েন্টে নয়, মধ্য-স্তরে থাকে। টাইপ 4 ড্রাইভারের মতো, টাইপ 3 ড্রাইভার সম্পূর্ণরূপে জাভাতে লেখা হয়। একই ক্লায়েন্ট-সাইড জেডিবিসি ড্রাইভার একাধিক ডেটাবেসের জন্য ব্যবহার করা যেতে পারে। এটি নির্ভর করে মিডলওয়্যারটি সমর্থন করার জন্য কনফিগার করা ডাটাবেসের সংখ্যার উপর। টাইপ 3 ড্রাইভারটি প্ল্যাটফর্ম-স্বাধীন কারণ প্ল্যাটফর্ম-সম্পর্কিত পার্থক্যগুলি মিডলওয়্যার দ্বারা যত্ন নেওয়া হয়। এছাড়াও, মিডলওয়্যার ব্যবহার করা নিরাপত্তা এবং ফায়ারওয়াল অ্যাক্সেসের অতিরিক্ত সুবিধা প্রদান করে। ফাংশন জে. ডি. বি. সি. এ. পি. আই কলগুলি একটি মধ্য-স্তরের নেট সার্ভারে পাঠায় যা কলগুলিকে ডি. বি. এম. এস-নির্দিষ্ট নেটওয়ার্ক প্রোটোকলে অনুবাদ করে। অনুবাদিত কলগুলি তারপর একটি নির্দিষ্ট ডিবিএমএস-এ পাঠানো হয়। একটি ত্রিস্তরীয় যোগাযোগ পদ্ধতি অনুসরণ করে। একাধিক ডেটাবেসে ইন্টারফেস করতে পারে-বিক্রেতার জন্য নির্দিষ্ট নয়। জাভাতে লেখা জেডিবিসি ক্লায়েন্ট ড্রাইভার, একটি ডাটাবেস স্বাধীন প্রোটোকল ব্যবহার করে একটি মিডলওয়্যার-নেট-সার্ভারের সাথে যোগাযোগ করে এবং তারপরে এই নেট সার্ভার এই অনুরোধটিকে সেই ডাটাবেসের জন্য ডাটাবেস কমান্ডগুলিতে অনুবাদ করে। এইভাবে ক্লায়েন্ট ড্রাইভার থেকে মিডলওয়্যার যোগাযোগ ডাটাবেস স্বাধীন। সুবিধা যেহেতু ক্লায়েন্ট এবং মিডলওয়্যার সার্ভারের মধ্যে যোগাযোগ ডাটাবেস স্বাধীন, তাই ক্লায়েন্টের উপর ডাটাবেস বিক্রেতা লাইব্রেরির কোনও প্রয়োজন নেই। নতুন ডাটাবেসের জন্য ক্লায়েন্ট পরিবর্তন করার প্রয়োজন নেই। মিডলওয়্যার সার্ভার (যা একটি পূর্ণাঙ্গ জে2ইই অ্যাপ্লিকেশন সার্ভার হতে পারে) সাধারণ মিডলওয়্যার পরিষেবা যেমন ক্যাশিং (সংযোগ, অনুসন্ধানের ফলাফল ইত্যাদি) প্রদান করতে পারে। ), লোড ব্যালেন্সিং, লগিং এবং অডিটিং। একজন একক ড্রাইভার যে কোনও ডাটাবেস পরিচালনা করতে পারে, যদি মিডলওয়্যার এটি সমর্থন করে। ই. জি। : আইডিএ সার্ভারের অসুবিধাগুলি মধ্যম স্তরে ডাটাবেস-নির্দিষ্ট কোডিং করা প্রয়োজন। মিডলওয়্যার স্তর যুক্ত হওয়ার ফলে অতিরিক্ত বিলম্ব হতে পারে, তবে সাধারণত আরও ভাল মিডলওয়্যার পরিষেবা ব্যবহার করে তা কাটিয়ে ওঠা যায়। টাইপ 4 ড্রাইভার-ডাটাবেস-প্রোটোকল ড্রাইভার/থিন ড্রাইভার (পিওর জাভা ড্রাইভার) জে. ডি. বি. সি টাইপ 4 ড্রাইভার, যা ডাইরেক্ট টু ডাটাবেস পিওর জাভা ড্রাইভার নামেও পরিচিত, একটি ডাটাবেস ড্রাইভার বাস্তবায়ন যা জে. ডি. বি. সি কলগুলিকে সরাসরি বিক্রেতা-নির্দিষ্ট ডাটাবেস প্রোটোকলে রূপান্তরিত করে। সম্পূর্ণরূপে জাভাতে লেখা, টাইপ 4 ড্রাইভারগুলি এইভাবে প্ল্যাটফর্ম স্বাধীন। তারা ক্লায়েন্টের জাভা ভার্চ্যুয়াল মেশিনের ভিতরে ইনস্টল করে। এটি টাইপ 1 এবং টাইপ 2 ড্রাইভারের তুলনায় ভাল পারফরম্যান্স প্রদান করে কারণ এতে কলগুলিকে ওডিবিসি বা ডাটাবেস এপিআই কলগুলিতে রূপান্তর করার ওভারহেড নেই। টাইপ 3 ড্রাইভারের বিপরীতে, এটি কাজ করার জন্য সংশ্লিষ্ট সফ্টওয়্যারের প্রয়োজন হয় না। যেহেতু ডাটাবেস প্রোটোকল বিক্রেতার জন্য নির্দিষ্ট, তাই জে. ডি. বি. সি ক্লায়েন্টের বিভিন্ন ধরনের ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য পৃথক ড্রাইভারের প্রয়োজন হয়, যা সাধারণত বিক্রেতার সরবরাহ করা হয়। প্ল্যাটফর্মের স্বাধীনতা অর্জনের জন্য জাভাতে সম্পূর্ণরূপে প্রয়োগ করা সুবিধা। এই ড্রাইভারগুলি অনুরোধগুলিকে মধ্যস্থ বিন্যাসে (যেমন ওডিবিসি) অনুবাদ করে না। ক্লায়েন্ট অ্যাপ্লিকেশনটি সরাসরি ডাটাবেস সার্ভারের সাথে সংযুক্ত হয়। কোনও অনুবাদ বা মিডলওয়্যার স্তর ব্যবহার করা হয় না, যা কর্মক্ষমতা উন্নত করে। জেভিএম অ্যাপ্লিকেশন-থেকে-ডাটাবেস সংযোগের সমস্ত দিক পরিচালনা করতে পারে; এটি ডিবাগিংকে সহজতর করতে পারে। অসুবিধাগুলি ড্রাইভারগুলি ডাটাবেস নির্দিষ্ট, কারণ বিভিন্ন ডাটাবেস বিক্রেতারা ব্যাপকভাবে ভিন্ন (এবং সাধারণত মালিকানাধীন) নেটওয়ার্ক প্রোটোকল ব্যবহার করে। আরও দেখুন ADO.NET OLE DB ওপেন ডাটাবেস কানেক্টিভিটি (ODBC) XQJ (জাভার জন্য XQuery API) রেফারেন্স জাভা প্ল্যাটফর্ম ডেটা অ্যাক্সেস প্রযুক্তি