قواعد البيانات في جافا | Java JDBC

مفهوم الـ JDBC في جافا

JDBC إختصار لـ Java DataBase Connectivity, و هي عبارة عن API خاص في جافا للتعامل مع قواعد البيانات على إختلاف أنواعها.

قبل وجود الـ JDBC, كان المبرمجون يستخدمون API آخر للتعامل مع قواعد البيانات يسمى ODBC, و هو مكتوب بلغة برمجة مختلفة تسمى C الأمر الذي قد يؤدي إلى بعض المشاكل الأمنية بالإضافة إلى إبطاء عمل البرنامج. لذلك قام مطوروا لغة جافا ببناء API خاص بها أطلق عليه تسمية JDBC.


مصطلحات تقنية في قواعد البيانات

المصطلح معناه
API إختصار لـ Application Programming Interface, و هو عبارة عن ملف يشرح طريقة عمل برنامج محدد و يشرح أيضاً طريقة جعل البرامج الأخرى قادرة على التعامل معه.
JDBC API عبارة عن حزمة (Package) مصممة خصيصاً للتعامل مع قواعد البيانات.
JDBC Driver عبارة عن برنامج يعمل كوسيط بين التطبيق و قاعدة البيانات.
Statments هي جميع أنواع الإستعلامات ( Queries ) التي يتم إرسالها من البرنامج إلى قاعدة البيانات.
DataBase Stored Procedures عبارة عن مجموعة دول خاصة بقاعدة البيانات التي نتعامل معها.
كل قاعدة بيانات تملك مجموعة من الدول يمكن إستخدامها للتعامل مع قاعدة البيانات بسهولة أكثر, إضافةً إلى أوامر SQL المشتركة بين جميع قواعد البيانات.


ملاحظة

في حال كنت لا تملك أي فكرة أو خبرة في التعامل مع قواعد اليبانات فسبق و أعددنا مرجع شامل لتعلمها من الصفر.

دورة قواعد البيانات »

الأشياء الأساسية التي تحتاجها للتعامل مع قواعد البيانات في جافا

مفاهيم عامة و مصطلحات أساسية في قواعد البيانات

مقدمة

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

يمكنك تخزين أي نوع البيانات في قاعدة البيانات, فمثلاً يمكنك تخزين نصوص, ملفات نصية, صور, فيديوهات إلخ..

لبناء قاعدة بيانات عليك إستخدام برامج خاصة مثل MySQL Workbench - Oracle Database - CUBRID - Microsoft Access.

كيف تتخزن البيانات في قاعدة البيانات

عند التعامل مع قاعدة بيانات, عليك معرفة كيف تم ترتيب المعلومات بداخلها و كيف تم ربط المعلومات ببعضها البعض قبل أن تبدأ مباشرةً بكتابة الكود, حتى تعرف كيف تتعامل معها.

هنا وضعنا صورة لقاعدة بيانات صغيرة, تحتوي على أربع جداول.


هنا وضعنا صورة نظهر فيها المعلومات المخزنة في جدول الموظفين ( Clients ).


مصطلحات أساسية في قواعد البيانات

المصطلح معناه
Database تعني قاعدة بيانات, وهي عبارة عن ملف يحتوي على عدة جداول مرتبطة ببعضها البعض.
Table تعني جدول. الجدول يتألف من عدد محدد من الأعمدة و عدد غير محدد من الأسطر.
قاعدة البيانات تتألف من مجموعة جداول.
Field عبارة عن حقل أو عمود في الجدول, و هو يمثل معلومة لها نوع محدد في الجدول.
فمثلاً يمكن أن تكون هذه المعلومة نص, رقم, صورة, فيديو, صوت, أي ملف من أي نوع.
الجدول الواحد يتألف من عدة حقول.
Record عبارة عن سطر في الجدول, أي عبارة عن مجموعة معلومات. مجموعة المعلومات هذه تمثل سجل في الجدول.
الجدول الواحد يمكن أن يحتوي على عدد غير محدد من السجلات.
__________&&&______;&&&___________;

نظرة عامة على أوامر SQL

مقدمة

SQL إختصار لـ Structured Query Language و هي عبارة عن مجموعة من الأوامر تستخدم للتعامل مع أي قاعدة بيانات مهمة كان نوعها. هذه الأوامر تتيح لك إنشاء قاعدة بيانات, إضافة جدوال فيها, إضافة سجلات في الجدوال, تحديثهم, حذفهم, إسترجاع البيانات من قاعدة البيانات, البحث فيها و وضع شروط أثناء البحث إلخ..

إنشاء أو حذف قاعدة بيانات

لإنشاء قاعدة بيانات جديدة نستخدم الأمر: CREATE DATABASE

مثال

هنا قمنا بإنشاء قاعدة بيانات إسمها company

CREATE DATABASE company;

لحذف قاعدة بيانات نستخدم الأمر: DROP DATABASE

مثال

هنا قمنا بحذف قاعدة بيانات إسمها compnay

DROP DATABASE company;

إنتبه

في حال قمت بحذف قاعدة البيانات, سيجعلك ذلك تخسر جميع البيانات الموجودة فيها.

إنشاء جدول في قاعدة البيانات أو حذف جدول منها

لإنشاء جدول جديد في قاعدة البيانات نستخدم الأمر: CREATE TABLE

مثال

هنا قمنا بإنشاء جدول إٍسمه clients يتألف من أربعة حقول: id - first_name - last_name و phone

CREATE TABLE clients(
    id INT NOT NULL AUTOINCREMENT PRIMARY KEY,
    first-name VARCHAR(50),
    last-name VARCHAR(50),
    phone VARCHAR(50),
);

لحذف جدول من قاعدة البيانات نستخدم الأمر: DROP TABLE

مثال

هنا قمنا بحذف الجدول و حذف جميع البيانات الموجودة فيه.

DROP TABLE clients;

إنتبه

في حال قمت بحذف جدول من قاعدة البيانات, سيجعلك ذلك تخسر جميع السجلات الموجودة فيها.

إضافة سجلات في الجدول

لإضافة سجل في الجدول نستخدم الأمر: INSTERT INTO

مثال

هنا قمنا بإضافة أربع سجلات في الجدول clients

INSTERT INTO clients values ('Ahmad', 'Saad', '71 230 568');
INSTERT INTO clients values ('Wissam', 'Al ali', '03 568 975');
INSTERT INTO clients values ('Jihad', 'Sadek', '80 907 056');
INSTERT INTO clients values ('Khaled', 'Amer', '76 234 654');

ملاحظة

عند إضافة سجل في جدول الموظفين نضع إسمه و إسم عائلته و رقم هاتفه, بعدها سيتم إعطائه رقم id بشكل تلقائي لأن الحقل id يعطي رقم موحد لكل سجل تم إدخاله بشكل تلقائي.

إستخراج البيانات من قاعدة البيانات

لإستخراج بيانات من قاعدة البيانات نستخدم الأمر: SELECT FROM

المثال الأول

هنا قمنا بعرض جميع السجلات الموجودة في الجدول client

SELECT * FROM clients;

سنحصل على النتيجة التالية عند تنفيذ الإستعلام في قاعدة البيانات.

+----+------------+-----------+------------+
| id | first-name | last-name | phone      |
+----+------------+-----------+------------+
| 1  | Ahmad      | Saad      | 71 230 568 |
| 2  | Wissam     | Al ali    | 03 568 975 |
| 3  | Jihad      | Sadek     | 80 907 056 |
| 4  | Khaled     | Amer      | 76 234 654 |
+----+------------+-----------+------------+


المثال الثاني

هنا قمنا بعرض محتوى العامودين الثاني و الثالث في الجدول client

SELECT first-name, last-name FROM clients;

سنحصل على النتيجة التالية عند تنفيذ الإستعلام في قاعدة البيانات.

+------------+-----------+
| first-name | last-name |
+------------+-----------+
| Ahmad      | Saad      |
| Wissam     | Al ali    |
| Jihad      | Sadek     |
| Khaled     | Amer      |
+------------+-----------+


المثال الثالث

هنا قمنا بعرض جميع الحقول للسجل الذي يحمل الـ id = 1 في الجدول client

SELECT * FROM clients WHERE id = 1;

سنحصل على النتيجة التالية عند تنفيذ الإستعلام في قاعدة البيانات.

+----+------------+-----------+------------+
| id | first-name | last-name | phone      |
+----+------------+-----------+------------+
| 1  | Ahmad      | Saad      | 71 230 568 |
+----+------------+-----------+------------+

تحديث سجلات الجدول

لتحديث بيانات سجل من السجلات الموجودة في الجدول نستخدم الأمر: UPDATE

مثال

هنا قمنا بتعديل معلومات السجل الذي يحمل الـ id = 3 في الجدول client

UPDATE clients
SET first-name = 'Jalal'
WHERE id = 3;

حذف سجلات من الجدول

لحذف سجل ( أي سطر كامل ) من السجلات الموجودة في الجدول نستخدم الأمر: DELETE

مثال

هنا قمنا بحذف السجل الذي يحمل الـ id = 2 في الجدول clients

DELETE FROM clients
WHERE id = 2;
__________&&&______;&&&___________;

Javaأنواع الـ Drivers التي يمكن إستخدامها للإتصال بقواعد البيانات

مقدمة

للتعامل مع قواعد البيانات تحتاج برنامج وسيط يربط برنامجك بقاعدة البيانات, هذا البرنامج يسمى Driver.

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

  1. JDBC-ODBC Bridge Driver.

  2. Native-API Driver.

  3. Network Protocol Driver.

  4. Thin Driver.

JDBC-ODBC Bridge Driver


طريقة عمله

الـ JDBC-ODBC Bridge Driver يقوم بتحويل أوامر JDBC API إلى أوامر يفهمها الـ ODBC Driver و الذي بدوره يقوم بربط البرنامج بقاعدة البيانات.


فوائده

  • سهل الإستخدام.

  • يمكن ربطه بسهولة مع أي قاعدة بيانات.


مساوئه

  • أدائه يعتبر ضعيف (بطيئ) حيث أنه يقوم بتحويل أوامر الـ JDBC إلى أوامر ODBC في كل عملية يتم إجراءها مع قاعدة البيانات.

  • يجب تنصيب الـ ODBC Driver في جهاز المستخدم.

  • كود الـ API مكتوب بلغة C و C++ و ليس بلغة جافا.

Native-API Driver


طريقة عمله

الـ Native-API Driver يعني إعتماد أوامر الـ API الملائمة لقاعدة البيانات التي سيتم التعامل معها بشكل مباشر.


java native api driver


فائدته

  • أدائه أفضل ( أسرع ) مقارنة مع الـ JDBC-ODBC Bridge Driver.


مساوئه

  • يجب تنصيب الـ Native Driver في جهاز المستخدم.

  • يجب إستخدام API خاص لأي قاعدة بيانات سيتم التعامل معها في جهاز المستخدم.

  • كود الـ API مكتوب بلغة C و C++ و ليس بلغة جافا.

Network Protocol Driver


طريقة عمله

الـ Network Protocol Driver يقوم بإرسال أوامر JDBC API من جهاز المستخدم إلى خادم, و الذي بدوره يقوم بتنفيذ أوامر البرنامج في قاعدة البيانات مباشرةً أو إرسالها إلى خادم آخر.


java network protocol driver


فوائده

  • لا حاجة إلى تنصيب أي برنامج من ناحية المستخدم.

  • لا حاجة إلى إستخدام APIخاص لقاعدة البيانات التي سيتم التعامل معها.

  • الكود كله مكتوب بلغة جافا.


مساوئه

  • يجب إتصال المستخدم بشكبة النت للوصول إلى قاعدة البيانات.

  • تجهيز الخادم لربط المستخدم بقاعدة البيانات أمر يتطلب بعض الجهد.

  • أي تعديل من ناحية برنامج المستخدم للتعامل مع قاعدة البيانات, سيجبرك على تعديل الكود الموضوع في الخادم.

Thin Driver


طريقة عمله

الـ Thin Driver يقوم بتحويل أوامر JDBC API مباشرةً إلى أوامر يفهمها الـ API الخاص بقواعد البيانات.


java thin driver


فوائده

  • أدائه أفضل من أداء جميع الـ Drivers الذين ذكرناهم سابقاً.

  • لا حاجة إلى تنصيب أي برنامج من ناحية المستخدم أو الخادم.

  • الكود كله مكتوب بلغة جافا.


مساوئه

  • يجب تجهيز الـ Drivers في قاعدة البيانات.

ما هو الـ driver المناسب للإتصال بقواعد البيانات؟

إذا كنت ستربط برنامجك بنوع واحد من قواعد البيانات ( مثل Oracle, MySQL, Sybase, IBM إلخ.. ), إستخدم الـ Thin Driver.

إذا كنت ستربط برنامجك بعدة أنواع من قواعد البيانات, إستخدم الـ Network Protocol Driver.

إستخدم الـ Native API Driver لربط برنامجك بقواعد البيانات في حال لم تقم بتجهيز Thin Driver أو Network Protocol Driver بعد.

لا تستخدم الـ JDBC-ODBC Bridge Driver إطلاقاً في برامجك.

__________&&&______;&&&___________;

تحميل الـ Driver الملائم لقاعدة البيانات و إضافته في المشروع في جافا

مقدمة

تحديد إسم الـ Driver الذي ستستخدمه كوسيط بين البرنامج و قاعدة البيانات يختلف تماماً من قاعدة بيانات إلى أخرى.
و تحديد رابط الوصول لقاعدة البيانات ( أي الـ URL) يختلف أيضاً على حسب نوعها.

إسم الـ Driver الملائم لقاعدة البيانات و طريقة كتابة الـ URL الذي يجعلك تصل إليها

حتى نسهل الأمر عليك, وضعنا في الجدول التالي طريقة التعامل مع أشهر قواعد البيانات.

كل ما عليك فعله هو النظر إلى إسم قاعدة البيانات و رابط الوصول لها, لمعرفة إسم Driver الذي يجب أن تضعه كـ Argument للدالة forName(), و طريقة كتابة رابط الوصول لها و الذي يجب أن تضعه كـ Argument للدالة getConnection().


قاعدة البيانات إسم الـ Driver الخاص فيها طريقة كتابة URL الوصول لها
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname:portNumber:databaseName
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname:portNumber/databaseName
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:hostname:portNumber/databaseName
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds:hostname:portNumber/databaseName

تحميل مكتبة الـ jar التي تمكنك من التعامل مع قاعدة البيانات

مكتبة الـ jar بشكل عام, عبارة عن مجلد يحتوي على كلاسات مكتوبة بلغة جافا, و مصممة خصيصاً للتعامل مع شيء محدد.

للتعامل مع أي قاعدة بيانات في جافا, عليك تحميل مكتبة الـ jar الخاصة فيها, أي مجموعة الكلاسات الخاصة لربط برنامجك بها.
بعدها عليك إضافتها في برنامجك كما ستتعلم لاحقاً.

في الجدول التالي وضعنا روابط مباشرة لتحميل مكتبات الـ jar بسهولة.

قاعدة البيانات مكتبة الـ jar الخاصة فيها تحميل المكتبة
ORACLE oracle-driver-ojdbc-12.1.0.2
MySQL mysql-connector-java-5.1.40-bin
DB2 db2jcc4
Sybase jtds-1.3.1

خطوات إضافة مكتبة jar جديدة في المشروع

الخطوات التي ستتعملها الآن تختلف على حسب البرنامج الذي تقوم باستخدامه. هنا إستخدمنا برنامج الـ Netbeans.

في البداية, في برنامج الـ Netbeans عند إنشاء أي مشروع نلاحظ أنه يوجد مجلدين أساسيين:

  • مجلد الـ Source Packages: نضع فيه ملفات الجافا.

  • مجلد الـ Libraries: نضع فيه مكتبات الـ jar.


إذا قمت بإظهار الأشياء الموجودة بداخل مجلد الـ Libraries ستجد ملف الـ JDK الذي يستخدمه مشروعك.
ملاحظة: إصدار مجلد الـ JDK سيكون قديماً حتماً عن الذي تستخدمه عندك. لكن لا تلقي له بالاً.


الآن, لإضافة أي مكتبة jar في المشروع قم باتباع الخطوات التالية:

  1. أنقر بزر الفأرة الأيمن على مجلد الـ Libraries.

  2. إختر Add JAR/Folder.

  3. إبحث عن مكتبة الـ jar التي قمت بتحميلها سابقاً, ثم أنقر Open.

  4. بعد إضافة المكتبة, ستظهر في مجلد الـ Libraries.


مثال

هنا قمنا بإضافة مكتبة الـ jar الخاصة بقواعد بيانات MySQL. لاحظ كيف ستظهر في مجلد الـ Libraries.


الملفات الأساسية في مشروع جافا في برنامج النت بينز
__________&&&______;&&&___________;

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

مقدمة

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

  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 الموضوعة في الكود فقط حتى تلائم قاعدة بياناتك, مثل إسم قاعدة البيانات, إسم المستخدم و كلمة مروره, إسم الحقل الذي ستقوم بعرض محتوياته إلخ..

__________&&&______;&&&___________;

الإنترفيسات و الكلاسات المصممة خصيصاً للتعامل مع قواعد البيانات في جافا

الجدول التالي يحتوي على الإنترفيسات و الكلاسات التي يمكنك إستخدامها للتعامل مع قواعد البيانات سواء لبدء الإتصال, تنفيذ إستعلامات, تخزين نتائج الإستعلامات إلخ..

الكلاس / الإنترفيس مع تعريفه
public class DriverManager الكلاس DriverManager مصمم لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات مثل إسم الـ Driver الذي سنستخدمه, إسم قاعدة البيانات, إسم المستخدم و كلمة مروره.
public interface Connection

    الإنترفيس Connection

مصمم لإنشاء إتصال بين البرنامج و قاعدة البيانات بالإعتماد على المعلومات التي تم تحديدها فيه في كائن الـ DriverManager.
public interface DatabaseMetaData

 الإنترفيس DatabaseMetaData

 يوفر مجموعة ضخمة من الدوال التي يمكن إستخدامها لمعرفة معلومات متعلقة بقاعدة البيانات التي تتعامل معها.
public interface Statement

    الإنترفيس Statement

 مصمم لإرسال الإستعلامات الثابتة التي لا تتغير إلى قاعدة البيانات, أي يمكنك إستخدامه في حال كنت تريد تنفيذ نفس أوامر الـ SQL في كل مرة تقوم فيها بتشغيل البرنامج.
public interface PreparedStatement الإنترفيس PreparedStatement يرث من الإنترفيس Statement, تم تصميمه لإرسال إستعلامات إلى قاعدة البيانات أثناء عمل البرنامج, كما أنه يمكن إستخدامه لتنفيذ نفس أوامر الـ SQL عدة مرات.
public interface ResultSet الإنترفيس ResultSet مصمم لتخزين أي بيانات يتم جلبها من قاعدة البيانات مهما كان نوعها.
public interface ResultSetMetaData الإنترفيس ResultSetMetaData يستخدم لمعرفة معلومات تتعلق بالجدول ( أو الجداول ) المخزنة في كائن الـ ResultSet, مثل:

  • أسماء الجداول المخزنة فيه.

  • عدد الأعمدة المخزنة فيه.

  • أسماء الأعمدة المخزنة فيه.

  • أنواع البيانات التي يمكن تخزينها في الأعمدة إلخ..


شرح الإنترفيسات و الكلاسات المصممة خصيصاً للتعامل مع قواعد البيانات في جافا بالتفصيل من هنا