إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java خطوات ربط البرنامج مع قواعد البيانات في جافا

    مقدمة

    لربط البرنامج مع أي قاعدة بيانات مهما كان نوعها عليك إتباع الخطوات التالية:

    1. تحميل حزمة الـ jar الخاصة بقاعدة البيانات التي سنقوم بالتعامل معها.
    2. إستدعاء كلاسات الـ JDBC المصممة للتعامل مع قواعد البيانات, أي أن نفعل لهم import.
    3. تحديد الـ Driver المناسب لإجراء الإتصال مع قاعدة البيانات.
    4. بدء الإتصال مع قاعدة البيانات.
    5. تجهيز الإستعلامات التي سيتم إرسالها إلى قاعدة البيانات.
    6. تنفيذ الإستعلامات التي تم تجهيزها.
    7. إغلاق الإتصال مع قاعدة البيانات عند الإنتهاء.

    تحديد الـ Driver المناسب لإجراء الإتصال مع قاعدة البيانات

    لتحديد إسم الـ Driver الملائم للإتصال بقاعدة البيانات التي سيتم التعامل معها نستخدم الدالة الثابتة forName() الموجودة في كلاس إسمه Class.

    مثال

    في حال كنا سنربط البرنامج بقاعدة بيانات مبنية بنظام MYSQL نكتب التالي.

    Class.forName("com.mysql.jdbc.Driver");
    		

    بناء الدالة forName().

    public static Class<?> forName(String className)
    throws ClassNotFoundException 
    	

    الـ className هو نص يمثل إسم الكلاس ( أي الـ Driver ) الذي سيربط البرنامج بقاعدة البيانات.


    القيمة التي ترجعها الدالة forName().

    ترجع كائن نوعه Class يمثل إسم الكلاس ( أي الـ Driver ) الذي سيربط البرنامج بقاعدة البيانات.


    الأخطاء التي قد تحدث عند إستدعاء الدالة forName().

    • LinkageError في حال عدم وجود توافق بين أكواد الكلاسات المستخدمة في عملية ربط البرنامج مع قواعد البيانات.
    • ExceptionInInitializerError في حال حدث خطأ عند خلق الكائن.
    • ClassNotFoundException في حال كان الكلاس الذي قمنا بتمريره غير موجود.

    بدء الإتصال مع قاعدة البيانات

    لبدء عملية الإتصال بقاعدة البيانات نستخدم الدالة الثابتة getConnection() الموجودة في الكلاس DriverManager, و التي ترجع كائن نوعه Connection يمثل الإتصال القائم بين البرنامج و قاعدة البيانات.

    مثال

    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","root"); 
    		

    شرح الكود

    هنا إفترضنا أننا سنتصل بقاعدة بيانات:

    1. مبنية بنظام MYSQL و موجودة في نفس جهاز المستخدم.
    2. إسم المستخدم في قاعدة البيانات هو root.
    3. كلمة مرور المستخدم في قاعدة البيانات هي root.

    ملاحظة: شرحنا الدالة getConnection() بتفصيل ضمن شرح الكلاس DriverManager.

    تجهيز كائن لإرسال إستعلامات إلى قاعدة البيانات

    حتى تستطيع إرسال إستعلامات إلى قاعدة البيانات عليك إنشاء كائن نوع Statement من كائن الـ Connection الذي قمت بإنشائه سابقاً بواسطة الدالة createStatement().

    مثال

    هنا قمنا بإنشاء كائن نوعه Statement من كائن نوعه Connection و قمنا بتخزينه في الكائن stmt.

    Statement stmt = con.createStatement(); 
    		

    تنفيذ إستعلامات و حفظ و عرض نتائجهم

    لتنفيذ أي إستعلام على قاعدة البيانات, نقوم بإرسال نص الإستعلام بواسط الدالة executeQuery() على كائن الـ Statement الذي قمنا بإنشائه سابقاً.

    الدالة executeQuery() ترجع نتيجة الإستعلام ككائن نوعه ResultSet.

    مثال

    هنا قمنا بإرسال إستعلام إلى قاعدة البيانات, لإرجاع كافة أسماء الموظفين الموجودة في الجدول Employees.

    ResultSet rs = stmt.executeQuery("select name from Employees"); 
    		

    لعرض جميع الأسماء التي تم تخزينها في الكائن rs, نستخدم أي حلقة كالتالي.

    while(rs.next()){
        System.out.println( rs.getString("name") );
    } 
    		

    إغلاق الإتصال مع قاعدة البيانات عند الإنتهاء

    بعد الإنتهاء من التعامل مع قاعدة البيانات عليك إغلاق الإتصال معها بواسطة الدالة close() الموجودة في الإنترفيس Connection.

    إذاً, لإغلاق الإتصال مع قاعدة البيانات نستدعي الدالة close() على كائن الـ Connection و التي تقوم بقطع الإتصال مع كائن الـ Statement و كائن الـ ResultSet بشكل تلقائي.

    مثال

    هنا قمنا بقطع الإتصال مع قاعدة البيانات.

    con.close();
    		

    جميع الخطوات السابقة في مثال واحد

    في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها school تمثل قاعدة بيانات لمدرسة, و مبنية بنظام MySQL.
    بعدها سنقوم بطباعة أسماء الطلاب الموجودين فيها و المحفوظين في جدول إسمه students.

    تذكر: قبل البدء بكتابة الكود, لا تنسى أن تقوم بتحميل مكتبة الـ jar الخاصة بقواعد بيانات MySQL.


    مثال

    Main.java
    // 1) هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع قاعدة البيانات
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    public class Main {
     
        public static void main(String[] args) {
     
            try {
                // 2) الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
                Class.forName("com.mysql.jdbc.Driver");
     
                // 3) و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","root");
     
                // 4) و الذي سنستخدمه لإرسال إستعلامات إلى قاعدة البيانات Statement هنا قمنا بتجهيز كائن نوعه
                Statement stmt = con.createStatement();
     
                // 5) rs هنا قمنا بإرسال إستعلام إلى قاعدة البيانات لجلب جميع الأسماء الموجودة في جدول الطلاب. بعدها قمنا بتخزين النتيجة في الكائن
                ResultSet rs = stmt.executeQuery("select name from students");
     
                // 6) ( ملاحظة: هنا كل سطر يحتوي على إسم واحد ) rs هنا أنشأنا حلقة تمر على جميع الأسطر التي تم تخزينها في الكائن
                while(rs.next()) {
                    // rs هنا في كل دورة سيتم عرض إسم جديد من الأسماء الموجودة في الكائن
                    System.out.println(rs.getString("name"));
                }
     
                // 7) هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
                con.close();
            }
            catch(Exception e) {
                System.out.println(e.getMessage());
            }
     
        }
     
    }
    		

    لو كانت قاعدة البيانات موجودة و قمنا بتشغيل البرنامج, سيظهر لنا جميع الأسماء الموجودة في الحقل name كالتالي.

    Ahmad
    Fouad
    Said
    Rola
    Mohamad
    Rim
    Jana
    Salem
    Samir
    Abdullah
    ...
    		

    ملاحظة

    إذا قمت بتشغيل هذا البرنامج عندك سيظهر لك مشكلة سببها أن قاعدة البيانات school المذكورة في البرنامج غير موجودة عندك.
    الهدف من هذا المثال كان تمرينك على إتباع الخطوات الصحيحة للتعامل مع قواعد البيانات.مع العلم أنه في حال كان عندك قاعدة بيانات يمكنك التجربة عليها و سيكون عليك تعديل أوامر sql الموضوعة في الكود فقط حتى تلائم قاعدة بياناتك, مثل إسم قاعدة البيانات, إسم المستخدم و كلمة مروره, إسم الحقل الذي ستقوم بعرض محتوياته إلخ..

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب