إعلان
دورة تطوير التطبيقات باستخدام لغة 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 الإنترفيس DatabaseMetaData في جافا

    مقدمة

    الإنترفيس DatabaseMetaData يوفر مجموعة ضخمة من الدوال التي يمكن إستخدامها لمعرفة معلومات متعلقة بقاعدة البيانات التي تتعامل معها. مثل:

    • إسم قاعدة البيانات ( Database Name ).
    • إصدار قاعدة اليبانات ( Database Version ).
    • رابط الوصول لقاعدة البيانات ( Database URL ).
    • الأوامر الموجودة في قاعدة البيانات ( Database Keywords ).
    • إسم الـ Driver المستخدم ( Driver Name ).
    • إصدار الـ Driver المستخدم ( Driver Version ).
    • أسماء الجداول الموجودة في قاعدة البيانات ( Tables Names ).
    • إسم المستخدم المتصل بقاعدة البيانات من التطبيق ( User Name ).

    للحصول على كائن DatabaseMetaData من كائن الـ Connection نستدعي الدالة getMetaData().


    بناؤه

    public interface DatabaseMetaData
    extends Wrapper
    	

    دوال الإنترفيس DatabaseMetaData

    الجدول التالي يحتوي على دوال الإنترفيس DatabaseMetaData.

    الدالة مع تعريفها
    public String getUserName() ترجع إٍسم المستخدم المعرف في قاعدة البيانات و المتصل بها حالياً من التطبيق.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public String getDatabaseProductName() ترجع إسم البرنامج الذي تم بواسطته إنشاء قاعدة البيانات.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public String getDatabaseProductVersion() ترجع إصدار البرنامج الذي تم بواسطته إنشاء قاعدة البيانات.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public String getDriverName() ترجع إسم الـ Driver المستخدم للإتصال بقاعدة البيانات.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public String getDriverVersion() ترجع إصدار الـ Driver المستخدم للإتصال بقاعدة البيانات.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public String getURL() ترجع نص يمثل رابط الوصول لقاعدة البيانات أو null في حال لم تتمكن من إرجاعه.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.
    public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) ترجع وصف لجميع الجداول الموجودة في كاتالوج قاعدة البيانات ككائن من الكلاس ResultSet.كل سطر ترجعه يمثل معلومات جدول محدد.

    يمكنك وضع null مكان أي باراميتر في حال كنت لا تعرف ماذا يجب أن تضع.
    مكان الباراميتر tableNamePattern يمكنك تحديد الجدول الذي تريد إرجاع وصف له.
    مكان الباراميتر types يمكنك تحديد أنواع الجداول التي تريد إرجاع وصف لها.

    يتم ترتيب معلومات الأعمدة الموجودة في كل جدول كالتالي:
    1. TABLE_CAT و هو نص يمثل كاتالوج الجدول.
    2. TABLE_SCHEM و هو نص يمثل الـ schema و التي هي عبارة عن مجموعة كائنات تمثل قاعدة البيانات المرتبط بها مستخدم معين.
    3. TABLE_NAME و هو نص يمثل أسماء الجداول الموجودة في قاعدة البيانات.
    4. TABLE_TYPE و هو نص يمثل نوع الجدول و الذي يمكن أن يكون إحدى الأنواع التالية:
          (TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY, LOCAL TEMPORARY, ALIAS, SYNONYM).
    5. REMARKS و هو نص يمثل التعليقات الموضوعة في الجدول.
    6. TYPE_CAT و هو نص يمثل نوع الكاتالوج.
    7. TYPE_SCHEM و هو نص يمثل نوع الـ schema.
    8. TYPE_NAME و هو نص يمثل إسم النوع.
    9. SELF_REFERENCING_COL_NAME.
    10. REF_GENERATION.

    ملاحظة: بعض قواعد البيانات لا ترجع معلومات حول جميع الجداول الموجودة فيها.

    ترمي الإستثناء SQLException في حال حدث خطأ عند محاولة الإتصال بقاعدة البيانات.

    مثال شامل

    في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها company تمثل قاعدة بيانات لشركة, و مبنية بنظام MySQL.
    بعدها سنقوم بإضافة بطباعة المعلومات التالية:

    • إسم و إصدار الـ Driver الذي إستخدمناه للإتصال بقاعدة البيانات.
    • إسم و إصدار البرنامج الذي إستخدمناه لبناء قاعدة البيانات من الأساس.
    • إسم المستخدم المتصل بقاعدة البيانات من البرنامج.
    • رابط الوصول لقاعدة البيانات التي نتعامل معها.
    • أسماء جميع الجداول الموجودة في قاعدة البيانات.

    Main.java
    // هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع قاعدة البيانات
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
     
    public class Main {
     
        public static void main(String[] args) {
     
            try {
                // الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
                Class.forName("com.mysql.jdbc.Driver");
     
                // و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","thepassword");
     
                // و الذي سنستخدمه للحصول على معلومات تتعلق بقاعدة البيانات التي نتعامل معها DatabaseMetaData هنا قمنا بتجهيز كائن نوعه
                DatabaseMetaData dbmd = con.getMetaData();
     
                // DatabaseMetaData هنا قمنا بعرض بعض المعلومات التي يمكننا معرفتها من خلال كائن الـ
                System.out.println("Driver Name:" +dbmd.getDriverName() );
                System.out.println("Driver Version:" +dbmd.getDriverVersion() );
                System.out.println("User Name:" +dbmd.getUserName() );
                System.out.println("Database URL:" +dbmd.getURL() );
                System.out.println("Database Product Name:" +dbmd.getDatabaseProductName() );
                System.out.println("Databse Product Version:" +dbmd.getDatabaseProductVersion() );
     
                // الموجودين في قاعدة البيانات (TABLES) حتى ترجع لنا فقط أسماء الجداول getTables() في الدالة argument هنا قمنا بتجهيز هذه المصفوفة لأننا سنمررها كـ
                String table[]={"TABLE"};
     
                // rs هنا قمنا بجلب جميع المعلومات المتوفرة حول الجداول الموجودة في قاعدة البيانات, بعدها قمنا بتخزينهم في الكائن
                ResultSet rs = dbmd.getTables(null, null, null ,table);
     
                System.out.println("\nDatabse Tables names:");
     
                // rs هنا أنشأنا حلقة تمر على جميع الأسطر التي تم تخزينها في الكائن
                while(rs.next()) {
                    // rs هنا في كل دورة سيتم عرض إسم جدول من الأسماء الموجودة في الكائن
                    System.out.println("- " + rs.getString(3));
                }
     
                // هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
                con.close();
            }
            catch(Exception e) {
                System.out.println(e.getMessage());
            }
     
        }
     
    }
    		

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

    Driver Name: MySQL Connector Java
    Driver Version: mysql-connector-java-5.1.40 ( Revision: 402933ef52cad9aa82624e80acbea46e3a701ce6 )
    UserName: root@localhost
    Databse URL: jdbc:mysql://localhost:3306/company
    Database Product Name: MySQL
    Database Product Version: 5.6.17
    
    Databse Tables names:
    - employee
    - customers
    - orders
    - projects
    - departements
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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