Javaخطوات ربط البرنامج مع قواعد البيانات في جافا
- مقدمة
- تحديد الـ Driver المناسب لإجراء الإتصال مع قاعدة البيانات
- بدء الإتصال مع قاعدة البيانات
- تجهيز كائن لإرسال إستعلامات إلى قاعدة البيانات
- تنفيذ إستعلامات و حفظ و عرض نتائجهم
- إغلاق الإتصال مع قاعدة البيانات عند الإنتهاء
- جميع الخطوات السابقة في مثال واحد
مقدمة
لربط البرنامج مع أي قاعدة بيانات مهما كان نوعها عليك إتباع الخطوات التالية:
- تحميل حزمة الـ jar الخاصة بقاعدة البيانات التي سنقوم بالتعامل معها.
- إستدعاء كلاسات الـ JDBC المصممة للتعامل مع قواعد البيانات, أي أن نفعل لهم import.
- تحديد الـ Driver المناسب لإجراء الإتصال مع قاعدة البيانات.
- بدء الإتصال مع قاعدة البيانات.
- تجهيز الإستعلامات التي سيتم إرسالها إلى قاعدة البيانات.
- تنفيذ الإستعلامات التي تم تجهيزها.
- إغلاق الإتصال مع قاعدة البيانات عند الإنتهاء.
تحديد الـ Driver المناسب لإجراء الإتصال مع قاعدة البيانات
لتحديد إسم الـ Driver الملائم للإتصال بقاعدة البيانات التي سيتم التعامل معها نستخدم الدالة الثابتة forName() الموجودة في كلاس إسمه Class.
مثال
في حال كنا سنربط البرنامج بقاعدة بيانات مبنية بنظام MYSQL نكتب التالي.
بناء الدالة forName().
الـ className هو نص يمثل إسم الكلاس ( أي الـ Driver ) الذي سيربط البرنامج بقاعدة البيانات.
القيمة التي ترجعها الدالة forName().
ترجع كائن نوعه Class يمثل إسم الكلاس ( أي الـ Driver ) الذي سيربط البرنامج بقاعدة البيانات.
الأخطاء التي قد تحدث عند إستدعاء الدالة forName().
- LinkageError في حال عدم وجود توافق بين أكواد الكلاسات المستخدمة في عملية ربط البرنامج مع قواعد البيانات.
- ExceptionInInitializerError في حال حدث خطأ عند خلق الكائن.
- ClassNotFoundException في حال كان الكلاس الذي قمنا بتمريره غير موجود.
بدء الإتصال مع قاعدة البيانات
لبدء عملية الإتصال بقاعدة البيانات نستخدم الدالة الثابتة getConnection() الموجودة في الكلاس DriverManager, و التي ترجع كائن نوعه Connection يمثل الإتصال القائم بين البرنامج و قاعدة البيانات.
مثال
شرح الكود
هنا إفترضنا أننا سنتصل بقاعدة بيانات:
- مبنية بنظام MYSQL و موجودة في نفس جهاز المستخدم.
- إسم المستخدم في قاعدة البيانات هو root.
- كلمة مرور المستخدم في قاعدة البيانات هي root.
ملاحظة: شرحنا الدالة getConnection() بتفصيل ضمن شرح الكلاس DriverManager.
تجهيز كائن لإرسال إستعلامات إلى قاعدة البيانات
حتى تستطيع إرسال إستعلامات إلى قاعدة البيانات عليك إنشاء كائن نوع Statement من كائن الـ Connection الذي قمت بإنشائه سابقاً بواسطة الدالة createStatement().
مثال
هنا قمنا بإنشاء كائن نوعه Statement من كائن نوعه Connection و قمنا بتخزينه في الكائن stmt.
تنفيذ إستعلامات و حفظ و عرض نتائجهم
لتنفيذ أي إستعلام على قاعدة البيانات, نقوم بإرسال نص الإستعلام بواسط الدالة executeQuery() على كائن الـ Statement الذي قمنا بإنشائه سابقاً.
الدالة executeQuery() ترجع نتيجة الإستعلام ككائن نوعه ResultSet.
مثال
هنا قمنا بإرسال إستعلام إلى قاعدة البيانات, لإرجاع كافة أسماء الموظفين الموجودة في الجدول Employees.
لعرض جميع الأسماء التي تم تخزينها في الكائن rs, نستخدم أي حلقة كالتالي.
إغلاق الإتصال مع قاعدة البيانات عند الإنتهاء
بعد الإنتهاء من التعامل مع قاعدة البيانات عليك إغلاق الإتصال معها بواسطة الدالة close() الموجودة في الإنترفيس Connection.
إذاً, لإغلاق الإتصال مع قاعدة البيانات نستدعي الدالة close() على كائن الـ Connection و التي تقوم بقطع الإتصال مع كائن الـ Statement و كائن الـ ResultSet بشكل تلقائي.
مثال
هنا قمنا بقطع الإتصال مع قاعدة البيانات.
جميع الخطوات السابقة في مثال واحد
في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها school تمثل قاعدة بيانات لمدرسة, و مبنية بنظام MySQL.
بعدها سنقوم بطباعة أسماء الطلاب الموجودين فيها و المحفوظين في جدول إسمه students.
تذكر: قبل البدء بكتابة الكود, لا تنسى أن تقوم بتحميل مكتبة الـ jar الخاصة بقواعد بيانات MySQL.
مثال
لو كانت قاعدة البيانات موجودة و قمنا بتشغيل البرنامج, سيظهر لنا جميع الأسماء الموجودة في الحقل name كالتالي.
إذا قمت بتشغيل هذا البرنامج عندك سيظهر لك مشكلة سببها أن قاعدة البيانات school المذكورة في البرنامج غير موجودة عندك.
الهدف من هذا المثال كان تمرينك على إتباع الخطوات الصحيحة للتعامل مع قواعد البيانات.مع العلم أنه في حال كان عندك قاعدة بيانات يمكنك التجربة عليها و سيكون عليك تعديل أوامر sql الموضوعة في الكود فقط حتى تلائم قاعدة بياناتك, مثل إسم قاعدة البيانات, إسم المستخدم و كلمة مروره, إسم الحقل الذي ستقوم بعرض محتوياته إلخ..