Java Database Connectivity
جاوا ڈیٹا بیس کنیکٹوٹی (جے ڈی بی سی) جاوا پروگرامنگ زبان کے لیے ایک ایپلیکیشن پروگرامنگ انٹرفیس (اے پی آئی) ہے جو اس بات کی وضاحت کرتا ہے کہ کلائنٹ ڈیٹا بیس تک کیسے رسائی حاصل کر سکتا ہے۔ یہ جاوا پر مبنی ڈیٹا تک رسائی کی ٹیکنالوجی ہے جو جاوا ڈیٹا بیس کنیکٹوٹی کے لیے استعمال ہوتی ہے۔ یہ اوریکل کارپوریشن کے جاوا اسٹینڈرڈ ایڈیشن پلیٹ فارم کا حصہ ہے۔ یہ ڈیٹا بیس میں ڈیٹا کو استفسار کرنے اور اپ ڈیٹ کرنے کے طریقے فراہم کرتا ہے، اور رشتہ دار ڈیٹا بیس کی طرف مبنی ہے۔ جے ڈی بی سی سے او ڈی بی سی پل جاوا ورچوئل مشین (جے وی ایم) میزبان ماحول میں کسی بھی او ڈی بی سی قابل رسائی ڈیٹا سورس سے کنکشن کو قابل بناتا ہے۔ تاریخ اور نفاذ سن مائیکرو سسٹمز نے 19 فروری 1997 کو جاوا ڈویلپمنٹ کٹ (جے ڈی کے) 1.1 کے حصے کے طور پر جے ڈی بی سی جاری کیا۔ تب سے یہ جاوا پلیٹ فارم، اسٹینڈرڈ ایڈیشن (جاوا ایس ای) کا حصہ رہا ہے۔ جے ڈی بی سی کلاسیں جاوا پیکیج میں موجود ہیں۔ ورژن 3.1 سے شروع کرتے ہوئے، جے ڈی بی سی کو جاوا کمیونٹی پروسیس کے تحت تیار کیا گیا ہے۔ جے ایس آر 54 جے ڈی بی سی 3 کی وضاحت کرتا ہے (جے 2 ایس ای 1.4 میں شامل)، جے ایس آر 114 جے ڈی بی سی راؤسیٹ اضافے کی وضاحت کرتا ہے، اور جے ایس آر 221 جے ڈی بی سی 4 کی وضاحت ہے (جاوا ایس ای 6 میں شامل)۔ جے ڈی بی سی 4.1، جے ایس آر 221 کی مینٹیننس ریلیز 1 کے ذریعے متعین کیا گیا ہے اور جاوا ایس ای 7 میں شامل ہے۔ جے ڈی بی سی 4.2 کی وضاحت جے ایس آر 221 کی مینٹیننس ریلیز 2 کے ذریعے کی گئی ہے اور یہ جاوا ایس ای 8 میں شامل ہے۔ تازہ ترین ورژن، جے ڈی بی سی 4.1، جے ایس آر 221 کی مینٹیننس ریلیز 3 کے ذریعے متعین کیا گیا ہے اور جاوا ایس ای 9 میں شامل ہے۔ فنکشنلٹی چونکہ جے ڈی بی سی ('جاوا ڈیٹا بیس کنیکٹوٹی') زیادہ تر انٹرفیس کی تعریفوں اور وضاحتیں کا مجموعہ ہے، اس لیے یہ ان انٹرفیس کے متعدد نفاذ کو موجود ہونے اور رن ٹائم پر ایک ہی ایپلی کیشن کے ذریعے استعمال کرنے کی اجازت دیتا ہے۔ اے پی آئی درست جاوا پیکجوں کو متحرک طور پر لوڈ کرنے اور انہیں جے ڈی بی سی ڈرائیور مینیجر () کے ساتھ رجسٹر کرنے کے لیے ایک طریقہ کار فراہم کرتا ہے۔ جے ڈی بی سی کنکشن بنانے کے لیے فیکٹری کے طور پر استعمال ہوتا ہے۔ جے ڈی بی سی کنکشن بیانات بنانے اور ان پر عمل درآمد میں مدد کرتے ہیں۔ جے ڈی بی سی کنکشنز اپ ڈیٹ بیانات جیسے ایس کیو ایل کے CREATE، INSERT، UPDATE اور DELETE، یا استفسار بیانات جیسے SELECT کی حمایت کرتے ہیں۔ مزید برآں، ذخیرہ شدہ طریقہ کار کو جے ڈی بی سی کنکشن کے ذریعے استعمال کیا جا سکتا ہے۔ جے ڈی بی سی درج ذیل کلاسوں میں سے کسی ایک کا استعمال کرتے ہوئے بیانات کی نمائندگی کرتا ہے:-ڈیٹا بیس سرور کو ہر بار بھیجا جاتا ہے۔ دوسرے لفظوں میں، ڈیٹا پر مشتمل آبجیکٹ حاصل کرنے کے لیے ایس کیو ایل بیانات کا استعمال کرتے ہوئے طریقوں کو انجام دیا جاتا ہے۔ - انٹرفیس کا ذیلی انٹرفیس ہے۔ بیان کو کیش کیا جاتا ہے اور پھر ڈیٹا بیس سرور پر عمل درآمد کا راستہ پہلے سے طے کیا جاتا ہے، جس سے اسے موثر انداز میں متعدد بار انجام دیا جا سکتا ہے۔ پہلے سے مرتب کردہ ایس کیو ایل بیانات کو انجام دینے کے لیے استعمال ہوتا ہے۔ پہلے سے مرتب شدہ بیانات کو چلانے سے بیان پر عمل درآمد کی کارکردگی اور کارکردگی میں اضافہ ہوتا ہے۔ یہ اکثر متحرک بیان کے لیے استعمال ہوتا ہے جہاں کچھ ان پٹ پیرامیٹرز کو ٹارگٹ ڈیٹا بیس میں منتقل کیا جانا چاہیے۔ یہ متحرک استفسار کو استفسار کے پیرامیٹر کے لحاظ سے مختلف ہونے کی اجازت دیتا ہے۔ - انٹرفیس کا ذیلی انٹرفیس ہے۔ یہ ڈیٹا بیس پر ذخیرہ شدہ طریقہ کار کو انجام دینے کے لیے استعمال ہوتا ہے۔ ذخیرہ شدہ طریقہ کار کے لیے ان پٹ اور آؤٹ پٹ دونوں پیرامیٹرز کو ڈیٹا بیس میں منتقل کیا جانا چاہیے۔ اپ ڈیٹ بیانات جیسے کہ INSERT، UPDATE اور DELETE ایک اپ ڈیٹ گنتی واپس کرتے ہیں جو ڈیٹا بیس میں متاثرہ قطاروں کی تعداد کو انٹیجر کے طور پر ظاہر کرتے ہیں۔ یہ بیانات کسی دوسری معلومات کو واپس نہیں کرتے ہیں۔ سوالات کے بیانات جے ڈی بی سی قطار کا نتیجہ سیٹ واپس کرتے ہیں۔ قطار کا نتیجہ سیٹ نتیجہ سیٹ کے اوپر چلنے کے لیے استعمال ہوتا ہے۔ قطار میں انفرادی کالموں کو یا تو نام سے یا کالم نمبر کے ذریعے بازیافت کیا جاتا ہے۔ نتیجہ سیٹ میں قطاروں کی کوئی بھی تعداد ہو سکتی ہے۔ قطار کے نتیجے کے سیٹ میں میٹا ڈیٹا ہوتا ہے جو کالموں کے ناموں اور ان کی اقسام کو بیان کرتا ہے۔ اس میں بنیادی جے ڈی بی سی اے پی آئی کی توسیع ہے۔ جے ڈی بی سی کنکشنز کا انتظام اکثر ڈرائیور سے براہ راست حاصل کرنے کے بجائے کنکشن پول کے ذریعے کیا جاتا ہے۔ مثال جب جاوا ایپلی کیشن کو ڈیٹا بیس کنکشن کی ضرورت ہوتی ہے، تو جے ڈی بی سی بنانے کے لیے DriverManager.getConnection () طریقوں میں سے ایک استعمال کیا جاتا ہے۔ استعمال شدہ یو آر ایل کا انحصار مخصوص ڈیٹا بیس اور جے ڈی بی سی ڈرائیور پر ہے۔ یہ ہمیشہ "جے ڈی بی سی:" پروٹوکول سے شروع ہوگا، لیکن باقی خاص فروش پر منحصر ہے۔ کنکشن کون = DriverManager.getConnection ("جے ڈی بی سی: کچھ جے ڈی بی سی وینڈر کو درکار دیگر ڈیٹا"، "مائی لاگ ان"، "مائی پاس ورڈ") ؛ کوشش کریں {/* آپ یہاں کنکشن استعمال کرتے ہیں آخر کار {// جب آپ اس کے ساتھ کام کر لیں تو کنکشن کو بند کرنا ضروری ہے {conn.close () ؛} کیچ (تھرو ایبل ای) {/* اس کے بجائے اصل رعایت کو پھیلائیں کہ آپ صرف لاگ ان کرنا چاہتے ہیں */logger.warn ("جے ڈی بی سی کنکشن کو بند نہیں کر سکے"، ای) ؛} جاوا ایس ای 7 سے شروع کرتے ہوئے آپ جاوا کے وسائل کے ساتھ کوشش کا بیان استعمال کر سکتے ہیں۔ آزمائیں (سٹیٹمنٹ ایس ٹی ایم ٹی = conn.createStatement ()) {stmt.executeUpdate ("انسرٹ انٹو مائی ٹیبل (نام) ویلیوز ('میرا نام')") ؛} نوٹ کریں کہ ایس، ایس، اور ایس اکثر آپریٹنگ سسٹم کے وسائل جیسے ساکٹ یا فائل ڈسکرپٹرز کو جوڑتے ہیں۔ ایس سے ریموٹ ڈیٹا بیس سرورز کے معاملے میں، مزید وسائل سرور پر منسلک ہوتے ہیں، مثال کے طور پر۔ کسی بھی جے ڈی بی سی آبجیکٹ نے اپنا کردار ادا کرتے ہی اسے بند کرنا ضروری ہے ؛ کچرا اکٹھا کرنے پر انحصار نہیں کیا جانا چاہیے۔ مذکورہ بالا ٹرائی-ود-ریسورسز کنسٹرکٹ ایک کوڈ پیٹرن ہے جو اسے ختم کرتا ہے۔ ڈیٹا بیس استفسار میکانزم کا استعمال کرتے ہوئے ڈیٹا بیس سے ڈیٹا بازیافت کیا جاتا ہے۔ نیچے دی گئی مثال بیان بنانے اور استفسار پر عمل درآمد کو ظاہر کرتی ہے۔ آزمائیں (سٹیٹمنٹ ایس ٹی ایم ٹی = conn.createStatement () ؛ رزلٹ سیٹ آر ایس = stmt.executeQuery ("سیلکٹ * فرام مائی ٹیبل")) {جبکہ (rs.next ()) {انٹ نمبر کالم = rs.getMetaData (). گیٹ کالم اکاؤنٹ () ؛ کے لیے (انٹ آئی = 1 ؛ آئی <= نمبر کالم ؛ آئی + +) {// کالم نمبر 1 سے شروع ہوتے ہیں۔ //نیز، کالم کو ایک مخصوص قسم کے طور پر واپس کرنے کے لیے سیٹ کیے گئے نتائج پر بہت سے طریقے ہیں۔ درست تبادلوں کی فہرست کے لیے سن دستاویزات کا حوالہ دیں۔ System.out.println ("COLUMN" + i + "=" + rs.getObject (i)) ؛}} مندرجہ ذیل کوڈ تیار شدہ بیان کے استفسار کی ایک مثال ہے جو پہلی مثال سے کون اور کلاس کا استعمال کرتا ہے: آزمائیں (تیار شدہ بیان ps = conn.prepareStatement ("SELECT i")۔ *، جے۔ * اومیگا آئی سے، زپا جے کہاں i.name =؟ اور j.num =؟ ") ) {// تیار کیے جانے والے ایس کیو ایل بیان میں، ہر سوالیہ نشان ایک پلیس ہولڈر// ہے جسے "سیٹ" طریقہ کی دعوت کے ذریعے فراہم کردہ قدر سے تبدیل کیا جانا چاہیے۔ //مندرجہ ذیل دو طریقہ کار کالز دو پلیس ہولڈرز کی جگہ لے لیتے ہیں۔ پہلا// سٹرنگ ویلیو سے تبدیل ہوتا ہے، اور دوسرا انٹیجر ویلیو سے۔ ps.setString (1، "پور یورک") ؛ ps.setInt (2، 8008) ؛// نتیجہ سیٹ، rs، SQL بیان کو انجام دینے کا نتیجہ بتاتا ہے۔ //ہر بار جب آپ rs.next () پر کال کرتے ہیں، تو ایک اندرونی قطار پوائنٹر، یا کرسر،// نتیجہ کی اگلی قطار میں پیشگی ہوتا ہے۔ کرسر ابتدائی طور پر پہلی صف سے پہلے// پوزیشن میں ہوتا ہے۔ آزمائیں (ResultSet rs = ps.executeQuery ()) {جبکہ (rs.next ()) {int numColumns = rs.getMetaData (). GetColumnCꯥꯎꯟꯠ () ؛ کے لیے (int i = 1 ؛ i <= numColumns ؛ i + +) {// کالم نمبر 1 سے شروع ہوتے ہیں۔ //نیز، کالم کو ایک مخصوص قسم کے طور پر واپس کرنے کے لیے سیٹ کیے گئے نتائج پر بہت سے طریقے ہیں۔ درست تبادلوں کی فہرست کے لیے سن دستاویزات کا حوالہ دیں۔ System.out.println ("COLUMN" + i + "=" + rs.getObject (i)) ؛}// کے لیے}// جبکہ}// آزمائیں// کوشش کریں اگر ڈیٹا بیس آپریشن ناکام ہو جاتا ہے، تو جے ڈی بی سی ایک اٹھاتا ہے۔ اس طرح کی غلطی سے بازیاب ہونے کے لیے عام طور پر بہت کم کام کیا جا سکتا ہے، اس کے علاوہ اسے زیادہ سے زیادہ تفصیل کے ساتھ لاگ ان کرنے کے علاوہ۔ یہ تجویز کی جاتی ہے کہ اس کا ترجمہ ایپلیکیشن ڈومین کے استثناء (ایک غیر چیک شدہ) میں کیا جائے جس کے نتیجے میں ٹرانزیکشن رول بیک اور صارف کو اطلاع ملے۔ مندرجہ ذیل کوڈ ڈیٹا بیس ٹرانزیکشن کی ایک مثال ہے: بولین آٹو کامٹ ڈیفالٹ = conn.getAutoCommit () ؛ آزمائیں {conn.setAutoCommit (غلط) ؛/* آپ یہاں کون کے خلاف ٹرانزیکشن کے طور پر بیانات پر عمل درآمد کرتے ہیں */conn.commit () ؛} کیچ (تھرو ایبل ای) {آزمائیں {conn.rollback () ؛} کیچ (تھرو ایبل ای) {logger.warn ("ٹرانزیکشن کو رول بیک نہیں کر سکا"، ای) ؛} تھرو ای ؛} آخر میں {آزمائیں {conn.setAutoCommit (آٹو کامٹ ڈیفالٹ) ؛} کیچ (تھرو ایبل ای) {logger.warn ("آٹو کامٹ کی ترتیب کو بحال نہیں کر سکا"، ای) ؛} کال کی ایک مثال کے لیے درآمد کریں java.sql.Connection ؛ درآمد کریں java.sql.DriverManager ؛ درآمد کریں java.sql.Statement ؛ پبلک کلاس مائی ڈی بی 1 [جامد سٹرنگ یو آر ایل = "جے ڈی بی سی: مائی ایس کیو ایل:// لوکل ہوسٹ/مائی ڈی بی" ؛ پبلک اسٹیٹک وایڈ مین (سٹرنگ [] آرگس) {آزمائیں {Class.forName ("com.mysql.jdbc.Driver") ؛ کنکشن کون = DriverManager.getConnection (یو آر ایل، "روٹ"، "روٹ") ؛ اسٹیٹمنٹ ایس ٹی ایم ٹی = conn.createStatement () ؛ سٹرنگ ایس کیو ایل = "INSERT INTO ایم پی 1 ویلیوز ('pctb5361'، 'کیرل'، 'جان'، 96866668) اقسام تجارتی اور مفت ڈرائیور زیادہ تر رشتہ دار ڈیٹا بیس سرورز کو رابطہ فراہم کرتے ہیں۔ یہ ڈرائیور مندرجہ ذیل اقسام میں سے ایک میں آتے ہیں: ٹائپ 1 جو مقامی طور پر دستیاب او ڈی بی سی ڈرائیور کے مقامی کوڈ کو کال کرتا ہے۔ (نوٹ: جے ڈی بی سی 4 میں، جے ڈی بی سی-او ڈی بی سی پل کو ہٹا دیا گیا ہے) ٹائپ 2 جو کلائنٹ کی طرف ڈیٹا بیس وینڈر کی مقامی لائبریری کو کال کرتا ہے۔ یہ کوڈ پھر نیٹ ورک پر ڈیٹا بیس سے بات کرتا ہے۔ ٹائپ 3، خالص جاوا ڈرائیور جو سرور سائیڈ مڈل ویئر کے ساتھ بات کرتا ہے جو پھر ڈیٹا بیس سے بات کرتا ہے۔ ٹائپ 4، خالص جاوا ڈرائیور جو ڈیٹا بیس کے مقامی پروٹوکول کا استعمال کرتا ہے۔ ایک قسم کو بھی نوٹ کریں جسے اندرونی جے ڈی بی سی ڈرائیور کہا جاتا ہے-جاوا سے فعال ایس کیو ایل ڈیٹا بیس میں جے آر ای کے ساتھ سرایت شدہ ڈرائیور۔ یہ جاوا اسٹورڈ طریقہ کار کے لیے استعمال ہوتا ہے۔ یہ اوپر کی درجہ بندی کی اسکیم میں فٹ نہیں ہوتا ہے، حالانکہ یہ ممکنہ طور پر ٹائپ 2 یا ٹائپ 4 ڈرائیور سے ملتا جلتا ہوگا (اس بات پر منحصر ہے کہ ڈیٹا بیس خود جاوا میں نافذ کیا گیا ہے یا نہیں)۔ اس کی ایک مثال کے پی آر بی (کرنل پروگرام بنڈلڈ) ڈرائیور ہے جو اوریکل آر ڈی بی ایم ایس کے ساتھ فراہم کیا جاتا ہے۔ "جے ڈی بی سی: ڈیفالٹ: کنکشن" اس طرح کا کنکشن بنانے کا نسبتا معیاری طریقہ پیش کرتا ہے (کم از کم اوریکل ڈیٹا بیس اور اپاچی ڈربی اس کی حمایت کرتے ہیں)۔ تاہم، اندرونی جے ڈی بی سی ڈرائیور کے معاملے میں، جے ڈی بی سی کلائنٹ دراصل رسائی حاصل کیے جانے والے ڈیٹا بیس کے حصے کے طور پر چلتا ہے، اور اس لیے نیٹ ورک پروٹوکول کے بجائے براہ راست ڈیٹا تک رسائی حاصل کر سکتا ہے۔ ذرائع اوریکل کچھ جے ڈی بی سی ڈرائیوروں کی فہرست فراہم کرتا ہے اور وینڈرز سمبا ٹیکنالوجیز مختلف ایپلی کیشنز، ڈیٹا بیس اور ویب اے پی آئی کے لیے کسی بھی کسٹم/ملکیتی ریلیشنل ڈیٹا سورس سی ڈیٹا سافٹ ویئر شپ ٹائپ 4 جے ڈی بی سی ڈرائیوروں کے لیے کسٹم جے ڈی بی سی ڈرائیوروں کی تعمیر کے لیے ایس ڈی کے بھیجتی ہے۔ ایپلی کیشنز، ڈیٹا بیسز اور ویب سروسز کے لیے آر ایس ایس بس ٹائپ 4 جے ڈی بی سی ڈرائیورز ڈیٹا ڈائریکٹ ٹیکنالوجیز تمام بڑے ڈیٹا بیس کے لیے تیز ٹائپ 4 جے ڈی بی سی ڈرائیوروں کا ایک جامع مجموعہ فراہم کرتی ہے جس کی وہ تشہیر کرتے ہیں کیونکہ ٹائپ 5 آئی ڈی ایس سافٹ ویئر تمام بڑے ڈیٹا بیس تک بیک وقت رسائی کے لیے ٹائپ 3 جے ڈی بی سی ڈرائیور فراہم کرتا ہے۔ معاون خصوصیات میں رزلٹ سیٹ کیشنگ، ایس ایس ایل انکرپشن، کسٹم ڈیٹا سورس، ڈی بی شیلڈ جے ڈی بی ایکسیس مائی ایس کیو ایل اور اوریکل کے لیے جاوا استقامت لائبریری ہے جو جے ڈی بی سی جے نیٹ ڈائریکٹ کے اوپر ایک آسان قابل استعمال اے پی آئی میں بڑے ڈیٹا بیس تک رسائی کے آپریشنز کی وضاحت کرتا ہے جو مکمل طور پر سن جے 2 ای ای مصدقہ اعلی کارکردگی والے جے ڈی بی سی ڈرائیوروں کا ایک سوٹ فراہم کرتا ہے۔ جے ڈی بی سی آر 4 ایک سروس پروگرام ہے جسے سکاٹ کلیمنٹ نے لکھا ہے تاکہ آئی بی ایم پر آر پی جی سے جے ڈی بی سی تک رسائی کی اجازت دی جا سکے یعنی ایچ ایس کیو ایل ڈی بی جے ڈی بی سی ڈرائیور کے ساتھ ایک آر ڈی بی ایم ایس ہے اور یہ بی ایس ڈی لائسنس کے تحت دستیاب ہے۔ اسکیما کرالر ایک اوپن سورس اے پی آئی ہے جو جے ڈی بی سی کا فائدہ اٹھاتا ہے، اور ڈیٹا بیس میٹا ڈیٹا کو سادہ پرانے جاوا آبجیکٹ (پی او جے او) کے طور پر دستیاب کرتا ہے۔ مزید دیکھیں جی این یو ڈیٹا ایکسیس (جی ڈی اے) جے ڈی بی سی فیکیڈ اوپن ڈیٹا بیس کنیکٹوٹی (او ڈی بی سی) آبجیکٹ ریلیشنل میپنگ (او آر ایم) حوالہ جات بیرونی لنکس اے پی آئی جاواڈوک دستاویزات اے پی آئی جاواڈوک دستاویزات او/آر بروکر اسکالا جے ڈی بی سی فریم ورک ایس کیو ایل ٹول اوپن سورس، کمانڈ لائن، عام جے ڈی بی سی کلائنٹ یوٹیلیٹی۔ کسی بھی جے ڈی بی سی سپورٹنگ ڈیٹا بیس کے ساتھ کام کرتا ہے۔ جے ڈی بی سی یو آر ایل سٹرنگ اور تمام ڈیٹا بیس کی متعلقہ معلومات۔ جاوا پلیٹ فارم جاوا کی تفصیلات ایس کیو ایل ڈیٹا تک رسائی جاوا اے پی آئی ڈیٹا بیس اے پی آئی کی درخواست کرتی ہیں