Skip to content

5. المرفقات

نصف هنا التثبيت والاستخدام الأساسي للأدوات المستخدمة في الوثيقة "استمرارية Java 5 من الناحية العملية". المعلومات الواردة أدناه هي تلك المتوفرة في مايو 2007. ستصبح قديمة سريعًا. عندما يحدث ذلك، سيُطلب من القارئ اتباع إجراءات مماثلة ولكنها لن تكون متطابقة. تمت عمليات التثبيت على جهاز يعمل بنظام Windows XP Professional.

5.1. Java

سنستخدم أحدث إصدار من Java المتوفر لدى Sun [http://www.sun.com]. يمكن الوصول إلى التنزيلات عبر الرابط [http://java.sun.com/javase/downloads/index.jsp]:

Image

Image

ابدأ تثبيت JDK من الملف الذي تم تنزيله. بشكل افتراضي، يتم تثبيت Java في [C:\Program Files\Java]:

Image

5.2. Eclipse

5.2.1. التثبيت الأساسي

Eclipse هو IDE متاح على الرابط [http://www.eclipse.org/] ويمكن تنزيله من الرابط [http://www.eclipse.org/downloads/]. نقوم أدناه بتنزيل Eclipse 3.2.2:

Image

بمجرد تنزيل ملف zip، نقوم بفك ضغطه في مجلد على القرص:

Image

سنطلق بعد ذلك على مجلد تثبيت Eclipse، المذكور أعلاه [C:\devjava\eclipse 3.2.2\eclipse]، اسم <eclipse>. [eclipse.exe] هو الملف القابل للتنفيذ و [eclipse.ini] هو ملف التكوين الخاص به. لنلقِ نظرة على محتواه:

1
2
3
-vmargs
-Xms40m
-Xmx256m

يتم استخدام هذه المعلمات عند تشغيل Eclipse بالطريقة التالية:

eclipse.exe -vmargs -Xms40m -Xmx256m

نحصل على نفس النتيجة التي تم الحصول عليها باستخدام ملف .ini، من خلال إنشاء اختصار يقوم بتشغيل Eclipse باستخدام نفس هذه المعلمات. دعونا نوضحها:

  1. -vmargs: يشير إلى أن المعلمات التالية مخصصة للآلة الافتراضية Java التي ستقوم بتشغيل Eclipse. Eclipse هو تطبيق Java.
  2. -Xms40m: ؟
  3. -Xmx256m: يحدد حجم الذاكرة بالميغابايت المخصصة للآلة الافتراضية Java (JVM) التي تقوم بتشغيل Eclipse. بشكل افتراضي، يبلغ هذا الحجم 256 ميغابايت كما هو موضح هنا. إذا سمحت الآلة بذلك، يُفضل 512 ميغابايت.

يتم تمرير هذه الوسيطات إلى JVM الذي سيقوم بتشغيل Eclipse. يتم تمثيل JVM بملف [java.exe] أو [javaw.exe]. كيف يتم العثور عليه؟ في الواقع، يتم البحث عنه بطرق مختلفة:

  • في ملف PATH التابع لملف OS
  • في المجلد <JAVA_HOME>/jre/bin حيث JAVA_HOME هي متغير نظام يحدد المجلد الجذر لـ JDK.
  • إلى موقع يتم تمريره كحجة إلى Eclipse بالشكل -vm <المسار>\javaw.exe

يُفضل الحل الأخير لأن الحلين الآخرين عرضة لمخاطر التثبيتات اللاحقة للتطبيقات التي قد تغير إما PATH من OS، أو تغير المتغير JAVA_HOME.

لذلك نقوم بإنشاء الاختصار التالي:

Image

cible
<eclipse>\eclipse.exe" -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m
Démarrer dans
مجلد <eclipse> الخاص بتثبيت Eclipse

بعد ذلك، قم بتشغيل Eclipse عبر هذا الاختصار. ستظهر لك نافذة حوار أولى:

Image

[workspace] هو مساحة عمل. لنقبل القيم الافتراضية المقترحة. بشكل افتراضي، سيتم إنشاء مشاريع Eclipse في مجلد <workspace> المحدد في مربع الحوار هذا. هناك طريقة لتجاوز هذا السلوك. وهذا ما سنفعله بشكل منهجي. لذا فإن الإجابة المقدمة في مربع الحوار هذا ليست مهمة.

بعد هذه الخطوة، يتم عرض بيئة التطوير Eclipse:

Image

نقوم بإغلاق العرض [Welcome] كما هو مقترح أعلاه:

Image

قبل إنشاء مشروع Java، سنقوم بتكوين Eclipse لتحديد JDK لاستخدامه في ترجمة مشاريع Java. للقيام بذلك، نختار الخيار [Window / Preferences / Java / Installed JREs ]:

Image

عادةً، يجب أن يكون JRE (Java Runtime Environment) الذي تم استخدامه لتشغيل Eclipse نفسه موجودًا في قائمة JRE. سيكون هذا هو الخيار الوحيد عادةً. يمكن إضافة JRE باستخدام الزر [Add]. يجب عندئذٍ تحديد جذر JRE. أما الزر [Search]، فسيبدأ البحث عن ملف JREs على القرص. هذه طريقة جيدة لمعرفة أين وصلنا في ملفات JREs التي نقوم بتثبيتها ثم ننسى إزالتها عند الانتقال إلى إصدار أحدث. أعلاه، JRE المحدد هو الذي سيتم استخدامه لتجميع وتنفيذ مشاريع Java. وهو الذي تم تثبيته في الفقرة 5.1 والذي استخدم أيضًا لتشغيل Eclipse. النقر المزدوج عليه يتيح الوصول إلى خصائصه:

Image

الآن، لنقم بإنشاء مشروع Java [File / New / Project]:

اختر [Java Project]، ثم [Next] ->

Image

في [2]، نحدد مجلدًا فارغًا سيتم تثبيت مشروع Java فيه. في [1]، نسمي المشروع. ولا يجب أن يحمل اسم المجلد كما قد يوحي المثال أعلاه. بعد ذلك، نستخدم الزر [Next] للانتقال إلى الصفحة التالية من مساعد الإنشاء:

Image

أعلاه، نقوم بإنشاء مجلد خاص في المشروع لتخزين ملفات المصدر (.java) فيه:

Image

  • في [1]، نرى المجلد [src] الذي سيتم فيه تخزين ملفات .java المصدرية
  • في [2]، نرى المجلد [bin] الذي سيتم فيه تخزين الملفات المجمعة .class

ننهي المعالج بـ [Finish]. وبذلك يكون لدينا هيكل مشروع Java:

Image

نضغط بزر الفأرة الأيمن على المشروع [test1] لإنشاء فئة Java:

Image

  1. في [1]، المجلد الذي سيتم إنشاء الفئة فيه. يقترح Eclipse بشكل افتراضي مجلد المشروع الحالي.
  2. في [2]، الحزمة التي سيتم وضع الفئة فيها
  3. في [3]، اسم الفئة
  4. في [4]، نطلب إنشاء الطريقة الثابتة [main]

نقوم بالتحقق من صحة المساعد بواسطة [Finish]. يتم عندئذٍ إثراء المشروع بفئة:

Image

قام Eclipse بإنشاء الهيكل الأساسي للفئة. يمكن الحصول عليه بالنقر المزدوج على [Test1.java] أعلاه:

Image

نقوم بتعديل الكود أعلاه على النحو التالي:

Image

نقوم بتشغيل البرنامج [Test1.java]: [clic droit sur Test1.java -> Run As -> Java Application]

Image

يتم الحصول على نتيجة التنفيذ في النافذة [Console]:

Image

يجب أن تظهر النافذة [Console] بشكل افتراضي. إذا لم يكن الأمر كذلك، يمكن طلب عرضها بواسطة [Window/Show View/Console]:

Image

5.2.2. اختيار المُجمِّع

يتيح Eclipse إنشاء كود متوافق مع Java 1.4 وJava 1.5 وJava 1.6. بشكل افتراضي، يتم تهيئته لإنشاء كود متوافق مع Java 1.4. يتطلب API JPA كود Java 1.5. نقوم بتغيير طبيعة الكود الذي يولده [Window / Preferences / Java / Compiler]:

  • إلى [1]: اختيار الخيار [Java / Compiler]
  • إلى [2]: اختيار التوافق مع Java 5.0

5.2.3. تثبيت المكونات الإضافية لـ Callisto

تسمح النسخة الأساسية المثبتة أعلاه بإنشاء تطبيقات Java console ولكن ليس تطبيقات Java من نوع الويب أو Swing، أو يجب القيام بكل شيء بنفسك. سنقوم بتثبيت مكونات إضافية متنوعة:

لنقم بذلك [Help/Software Udates/Find and Install]:

  • في [2]، نحدد أننا نريد تثبيت مكونات إضافية جديدة
  • في [3]، نحدد المواقع التي سيتم استكشافها للعثور على المكونات الإضافية
  • في [4]، يتم تحديد المكونات الإضافية المطلوبة
  • في [5]، يشير Eclipse إلى أنه تم اختيار مكون إضافي يعتمد على مكونات إضافية أخرى لم يتم تحديدها
  • في [6]، نستخدم الزر [Select Required] لاختيار المكونات الإضافية المفقودة تلقائيًا
  • في [7]، يتم قبول شروط ترخيص هذه المكونات الإضافية المختلفة
  • في [8]، تظهر قائمة بجميع المكونات الإضافية التي سيتم تثبيتها
  • في [9]، يتم بدء تنزيل هذه المكونات الإضافية
  • في [10]، بمجرد تنزيلها، يتم تثبيتها جميعًا دون التحقق من توقيعها
  • في [11]، عند انتهاء تثبيت المكونات الإضافية، نترك Eclipse يعيد التشغيل
  • في [12]، إذا قمنا بتنفيذ [File/New/Project]، نكتشف أنه يمكننا الآن إنشاء تطبيقات ويب، وهو ما لم يكن ممكنًا في البداية.

5.2.4. تثبيت المكون الإضافي [TestNG]

TestNG (Test Next Generation) هو أداة اختبار وحدة تشبه في مبدأها JUnit. ومع ذلك، فإنها تقدم تحسينات تجعلنا نفضلها هنا على JUnit. نقوم بذلك كما في السابق: [Help/Software Udates/Find and Install]:

  • في [2]، يُشار إلى الرغبة في تثبيت مكونات إضافية جديدة
  • في [3a]، موقع تنزيل [TestNG] غير موجود. نضيفه باستخدام [3b]
  • في [4b]: موقع المكون الإضافي هو [http://beust.com/eclipse]. في [4a]، نضع ما نريد.
  • في [5a]، يتم تحديد المكون الإضافي [TestNG] للتحديث. في [5b]، يتم تشغيل التحديث.
  • في [6]، تم الاتصال بموقع المكون الإضافي. يتم عرض جميع المكونات الإضافية المتاحة على الموقع. هناك مكون واحد فقط هنا، نختاره قبل الانتقال إلى الخطوة التالية.
  • في [7]، نقبل شروط ترخيص المكون الإضافي
  • في [8]، تظهر قائمة بجميع المكونات الإضافية التي سيتم تثبيتها، وهنا نختار واحدة منها. نبدأ عملية التنزيل. بعد ذلك، تسير الأمور كما هو موضح أعلاه، بالنسبة لمكونات Callisto الإضافية.

بمجرد إعادة تشغيل Eclipse، يمكن ملاحظة وجود المكون الإضافي الجديد عن طريق طلب عرض العروض المتاحة، على سبيل المثال [Window / show View / Other] :

 

نرى أعلاه وجود عرض [TestNG] لم يكن موجودًا من قبل.

5.2.5. تثبيت المكون الإضافي [Hibernate Tools]

Hibernate هو مزود JPA والمكوّن الإضافي [Hibernate Tools] لـ Eclipse مفيد في بناء تطبيقات JPA. في مايو 2007، لا تسمح سوى أحدث إصدار منه (3.2.0beta9) بالعمل مع Hibernate/JPA، وهي غير متوفرة عبر الآلية التي تم وصفها للتو. فقط الإصدارات الأقدم متوفرة. لذا سنقوم بإجراء مختلف.

المكوّن الإضافي متاح على موقع Hibernate Tools: http://tools.hibernate.org/.

  • في [1]، نختار أحدث إصدار من Hibernate Tools
  • في [2]، نقوم بتنزيلها
  • في [3]، باستخدام أداة فك الضغط، نقوم بفك ضغط الملف المضغوط الذي تم تنزيله في المجلد <eclipse> (يفضل ألا يكون Eclipse قيد التشغيل)
  • في [4]، نقبل أن يتم استبدال بعض الملفات خلال العملية

أعد تشغيل Eclipse:

  • في [1]: نفتح منظورًا
  • في [2]: توجد الآن منظور [Hibernate Console]

لن نمضي أبعد من ذلك مع المكون الإضافي [Hibernate Tools] (إلغاء في [2]). يتم شرح طريقة استخدامه في أمثلة البرنامج التعليمي.

في بعض الأحيان، لا يكتشف Eclipse وجود المكونات الإضافية الجديدة. يمكن إجباره على إعادة فحص جميع مكوناته الإضافية باستخدام الخيار -clean. وبالتالي، سيتم تعديل الملف القابل للتنفيذ لاختصار Eclipse على النحو التالي:


"<eclipse>\eclipse.exe" -clean -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m

بمجرد اكتشاف Eclipse للمكونات الإضافية الجديدة، سنقوم بإزالة الخيار -clean أعلاه.

5.2.6. تثبيت المكون الإضافي [SQL Explorer]

سنقوم الآن بتثبيت مكون إضافي سيسمح لنا باستكشاف محتوى قاعدة البيانات مباشرة من Eclipse. يمكن العثور على المكونات الإضافية المتاحة لـ Eclipse على موقع [http://eclipse-plugins.2y.net/eclipse/plugins.jsp]:

  • في [1]: موقع ملحقات Eclipse
  • في [2]: اختر الفئة [Database]
  • في [3]: في الفئة [Database]، اختر عرضًا حسب الترتيب (غير موثوق به نظرًا لقلة عدد المصوتين)
  • في [4]: QuantumDB يأتي في المرتبة الأولى
  • في [5]: نختار SQLExplorer، الأقدم، والأقل تقييمًا (المركز الثالث) ولكنه جيد جدًا مع ذلك. ننتقل إلى موقع المكون الإضافي [plugin-homepage]
  • في [6] و [7]: نبدأ في تنزيل المكون الإضافي.
  • إلى [8]: قم بفك ضغط ملف zip الخاص بالمكوّن الإضافي في مجلد Eclipse.

للتحقق، أعد تشغيل Eclipse مع خيار -clean إن أمكن:

  • في [1]: افتح منظورًا جديدًا
  • في [2]: نرى أن منظور [SQL Explorer] متاح. سنعود إلى هذا لاحقًا.

5.3. حاوية السيرفلت Tomcat 5.5

5.3.1. التثبيت

لتشغيل السيرفلت، نحتاج إلى حاوية سيرفلت. نقدم هنا أحدها، وهو Tomcat 5.5، المتاح على الرابط http://tomcat.apache.org/. نوضح هنا خطوات التثبيت (مايو 2007). إذا كانت هناك نسخة سابقة من Tomcat مثبتة بالفعل، فمن الأفضل إزالتها أولاً.

Image

لتنزيل المنتج، اتبع الرابط [Tomcat 5.x] أعلاه:

Image

يمكنك اختيار ملف .exe المخصص لمنصة Windows. بمجرد تنزيله، قم بتشغيل تثبيت Tomcat بالنقر المزدوج عليه:

Image

نوافق على شروط الترخيص ->

Image

قم بـ [next] ->

Image

قبول مجلد التثبيت المقترح أو تغييره باستخدام [Browse] ->

Image

تحديد اسم المستخدم/كلمة مرور مسؤول خادم Tomcat. هنا تم وضع [admin / admin] ->

يحتاج Tomcat 5.x إلى JRE 1.5. ومن المفترض أن يعثر على النسخة المثبتة على جهازك. في الأعلى، المسار المحدد هو مسار JRE 1.6 الذي تم تنزيله في الفقرة 5.1. إذا لم يتم العثور على JRE، فحدد جذره باستخدام الزر [1]. بعد ذلك، استخدم الزر [Install] لتثبيت Tomcat 5.x ->

Image

يُنهي الزر [Finish] عملية التثبيت. يُشار إلى وجود Tomcat برمز يظهر على يمين شريط مهام Windows:

Image

يؤدي النقر بزر الماوس الأيمن على هذا الرمز إلى الوصول إلى أوامر تشغيل – إيقاف الخادم:

Image

نستخدم الخيار [Stop service] لإيقاف تشغيل خادم الويب الآن:

Image

لاحظ تغيير حالة الرمز. يمكن إزالة هذا الرمز من شريط المهام:

Image

تم تثبيت Tomcat في المجلد الذي اختاره المستخدم، والذي سنطلق عليه من الآن فصاعدًا <tomcat>. هيكل هذا المجلد للإصدار Tomcat 5.5.23 الذي تم تنزيله هو كما يلي:

Image

أدى تثبيت Tomcat إلى ظهور عدد من الاختصارات في القائمة [Démarrer]. نستخدم الرابط [Monitor] أدناه لتشغيل أداة إيقاف/تشغيل Tomcat:

Image

ثم نجد الرمز الموضح سابقًا:

Image

يمكن تنشيط شاشة Tomcat بالنقر المزدوج على هذه الأيقونة:

Image

تسمح لنا الأزرار [Start - Stop - Pause] - Restart بتشغيل - إيقاف - إعادة تشغيل الخادم. نقوم بتشغيل الخادم بواسطة [Start] ثم، باستخدام متصفح، نطلب عنوان URL http://localhost:8080. يجب أن نحصل على صفحة مشابهة للصفحة التالية:

Image

يمكننا اتباع الروابط أدناه للتحقق من التثبيت الصحيح لـ Tomcat:

Image

جميع الروابط الموجودة في الصفحة [http://localhost:8080] مهمة، وننصح القارئ باستكشافها. سنعود لاحقًا إلى الروابط التي تسمح بإدارة تطبيقات الويب المنشورة داخل الخادم:

Image

5.3.2. نشر تطبيق ويب داخل خادم Tomcat

5.3.3. النشر

يجب أن يتبع تطبيق الويب قواعد معينة ليتم نشره داخل حاوية سيرفلت. لنفترض أن <webapp> هو مجلد تطبيق الويب. يتكون تطبيق الويب من:

classes
في المجلد <webapp>\WEB-INF\classes
archives java
في المجلد <webapp>\WEB-INF\lib
vues, ressources (.jsp, .html, ...)
في المجلد <webapp> أو المجلدات الفرعية

يتم تكوين تطبيق الويب بواسطة ملف XML: <webapp>\WEB-INF\web.xml. هذا الملف غير ضروري في الحالات البسيطة، لا سيما عندما لا يحتوي تطبيق الويب إلا على ملفات ثابتة. لنقم بإنشاء الملف HTML التالي:

<html>
    <head>
      <title>Application exemple</title>
  </head>
  <body>
      Application exemple active ....
  </body>
</html>

ونحفظه في مجلد:

Image

إذا قمنا بتحميل هذا الملف في متصفح، فسنحصل على الصفحة التالية:

Image

يُظهر العنوان URL الذي يعرضه المتصفح أن الصفحة لم يتم توفيرها بواسطة خادم ويب، بل تم تحميلها مباشرةً بواسطة المتصفح. نريد الآن أن تكون متاحة عبر خادم الويب Tomcat.

لنعد إلى شجرة المجلدات <tomcat>:

Image

يتم تكوين تطبيقات الويب المنشورة داخل خادم Tomcat باستخدام ملفات XML الموجودة في المجلد [<tomcat>\conf\Catalina\localhost]:

يمكن إنشاء ملفات XML هذه يدويًا نظرًا لبساطة هيكلها. بدلاً من اتباع هذه الطريقة، سنستخدم أدوات الويب التي يوفرها Tomcat.

5.3.4. إدارة Tomcat

على صفحة الدخول http://localhost:8080، يوفر لنا الخادم روابط لإدارته:

Image

يتيح لنا الرابط [Tomcat Administration] إمكانية تكوين الموارد التي يوفرها Tomcat للتطبيقات الويب المنشورة بداخله، على سبيل المثال مجموعة اتصالات بقاعدة بيانات. لنتبع الرابط:

Image

تشير الصفحة التي تم الحصول عليها إلى أن إدارة Tomcat 5.x تتطلب حزمة خاصة تسمى "admin". لنعد إلى موقع Tomcat [http://tomcat.apache.org/download-55.cgi]:

Image

لنقم بتنزيل ملف zip المسمى [Administration Web Application] ثم نقوم بفك ضغطه. محتواه هو كما يلي:

Image

يجب نسخ المجلد [admin] إلى [<tomcat>\server\webapps] حيث <tomcat> هو المجلد الذي تم تثبيت Tomcat فيه 5.x:

Image

يحتوي المجلد [localhost] على ملف [admin.xml] الذي يجب نسخه إلى [<tomcat>\conf\Catalina\localhost]:

Image

دعونا نوقف Tomcat ثم نعيد تشغيله إذا كان نشطًا. ثم باستخدام متصفح، نطلب مرة أخرى صفحة الدخول إلى خادم الويب:

Image

لنضغط على الرابط [Tomcat Administration]. تظهر لنا صفحة تسجيل الدخول (للوصول إليها، قد نضطر إلى "إعادة تحميل/تحديث" الصفحة):

هنا، يجب إعادة إدخال المعلومات التي أدخلناها أثناء تثبيت Tomcat. في حالتنا، ندخل الزوج admin / admin. ينقلنا الزر [Login] إلى الصفحة التالية:

Image

تسمح هذه الصفحة لمسؤول Tomcat بتحديد

  • مصادر البيانات (Data Sources
  • المعلومات اللازمة لإرسال البريد (Mail Sessions
  • بيانات البيئة التي يمكن لجميع التطبيقات الوصول إليها (Environment Entries
  • إدارة مستخدمي/مسؤولي Tomcat (Users
  • إدارة مجموعات المستخدمين (Groups
  • تحديد الأدوار (= ما يمكن للمستخدم فعله أو عدم فعله)،
  • تحديد خصائص تطبيقات الويب التي ينشرها الخادم (Service Catalina)

دعونا نتبع الرابط [Roles] أعلاه:

Image

تسمح الدور بتحديد ما يمكن للمستخدم أو مجموعة المستخدمين القيام به أو عدم القيام به. يتم ربط حقوق معينة بدور ما. يرتبط كل مستخدم بدور واحد أو أكثر ويتمتع بحقوق هذه الأدوار. يمنح الدور [manager] أدناه الحق في إدارة تطبيقات الويب التي يتم نشرها في Tomcat (النشر، التشغيل، الإيقاف، إلغاء التحميل). سنقوم بإنشاء مستخدم [manager] ونربطه بالدور [manager] لتمكينه من إدارة تطبيقات Tomcat. للقيام بذلك، نتبع الرابط [Users] في صفحة الإدارة:

Image

نلاحظ أن هناك عددًا من المستخدمين موجودين بالفعل. نستخدم الخيار [Create New User] لإنشاء مستخدم جديد:

Image

نمنح المستخدم manager كلمة المرور manager ونخصص له دور manager. نستخدم الزر [Save] لتأكيد هذه الإضافة. يظهر المستخدم الجديد في قائمة المستخدمين:

Image

سيتم إضافة هذا المستخدم الجديد إلى الملف [<tomcat>\conf\tomcat-users.xml]:

Image

الذي يحتوي على ما يلي:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="manager" password="manager" fullName="" roles="manager"/>
  <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
  • السطر 10: المستخدم [manager] الذي تم إنشاؤه

هناك طريقة أخرى لإضافة مستخدمين وهي تعديل هذا الملف مباشرة. ويجب اتباع هذه الطريقة بشكل خاص إذا نسيت كلمة مرور المسؤول admin أو manager.

5.3.5. إدارة تطبيقات الويب المنشورة

لنعد الآن إلى صفحة الدخول [http://localhost:8080] ونتبع الرابط [Tomcat Manager]:

Image

نحصل عندئذٍ على صفحة مصادقة. نقوم بتسجيل الدخول باسم manager / manager، c.a.d. المستخدم ذو الدور [manager] الذي أنشأناه للتو. في الواقع، لا يمكن استخدام هذا الرابط إلا لمستخدم لديه هذا الدور. في السطر 11 من [tomcat-users.xml]، نرى أن المستخدم [admin] لديه أيضًا الدور [manager]. لذلك يمكننا أيضًا استخدام المصادقة [admin / admin].

Image

نحصل على صفحة تسرد التطبيقات المنشورة حاليًا في Tomcat:

Image

يمكننا إضافة تطبيق جديد باستخدام النماذج الموجودة أسفل الصفحة:

Image

هنا، نريد نشر التطبيق النموذجي الذي أنشأناه سابقًا داخل Tomcat. نقوم بذلك بالطريقة التالية:

Image

Context Path
/example
الاسم المستخدم للإشارة إلى تطبيق الويب
المراد نشره
Directory URL
C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\example
مجلد تطبيق الويب

للحصول على الملف [C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\exemple\exemple.html]، سنطلب من Tomcat الملف URL [http://localhost:8080/exemple/exemple.html]. يُستخدم السياق لتسمية جذر شجرة التطبيق الويب الذي تم نشره. نستخدم الزر [Deploy] لتنفيذ نشر التطبيق. إذا سارت الأمور على ما يرام، سنحصل على صفحة الاستجابة التالية:

Image

ويظهر التطبيق الجديد في قائمة التطبيقات المنشورة:

دعونا نعلق على سطر السياق /example أعلاه:

/exemple
رابط على http://localhost:8080/exemple
Démarrer
يسمح بتشغيل التطبيق
Arrêter
يسمح بإيقاف التطبيق
Recharger
يسمح بإعادة تحميل التطبيق. وهذا ضروري على سبيل المثال عند إضافة أو
تعديل أو حذف فئات معينة من التطبيق.
Undeploy
حذف السياق [/exemple]. يختفي التطبيق من قائمة
التطبيقات المتاحة.

الآن بعد أن تم نشر تطبيقنا /example، يمكننا إجراء بعض الاختبارات. نطلب الصفحة [exemple.html] عبر عنوان URL [http://localhost:8080/exemple/vues/exemple.html]:

Image

هناك طريقة أخرى لنشر تطبيق ويب داخل خادم Tomcat وهي إدخال المعلومات التي أدخلناها عبر واجهة الويب، في ملف [contexte].xml الموجود في المجلد [<tomcat>\conf\Catalina\localhost]، حيث [contexte] هو اسم تطبيق الويب.

لنعد إلى واجهة إدارة Tomcat:

Image

لنحذف التطبيق [/exemple] مع رابطه [Undeploy]:

Image

لم يعد التطبيق [/exemple] جزءًا من قائمة التطبيقات النشطة. الآن لنحدد الملف [exemple.xml] التالي:

<Context docBase="C:/data/travail/2006-2007/eclipse/dvp-jpa/annexes/tomcat/exemple">
</Context>

يتكون الملف XML من علامة <Context> واحدة، حيث يحدد السمة docBase المجلد الذي يحتوي على تطبيق الويب المراد نشره. لنضع هذا الملف في <tomcat>\conf\Catalina\localhost:

Image

لنوقف Tomcat ونعيد تشغيله إذا لزم الأمر، ثم نعرض قائمة التطبيقات النشطة باستخدام أداة إدارة Tomcat:

Image

التطبيق [/exemple] موجود بالفعل. لنطلب، باستخدام متصفح، عنوان URL:

[http://localhost:8080/exemple/exemple.html]:

Image

يمكن حذف تطبيق الويب الذي تم نشره بهذه الطريقة من قائمة التطبيقات المنشورة، بنفس الطريقة السابقة، باستخدام الرابط [Undeploy]:

Image

في هذه الحالة، يتم حذف الملف [exemple.xml] تلقائيًا من المجلد [<tomcat>\conf\Catalina\localhost].

أخيرًا، لنشر تطبيق ويب داخل Tomcat، يمكن أيضًا تعريف سياقه في الملف [<tomcat>\conf\server.xml]. لن نتطرق إلى هذه النقطة هنا.

5.3.6. تطبيق ويب مع صفحة رئيسية

عندما نطلب عنوان URL [http://localhost:8080/exemple/]، نحصل على الرد التالي:

Image

مع بعض الإصدارات السابقة من Tomcat، كنا سنحصل على محتوى المجلد الفعلي للتطبيق [/exemple].

يمكننا التأكد من أنه عند طلب السياق، يتم عرض صفحة تسمى الصفحة الرئيسية. للقيام بذلك، نقوم بإنشاء ملف [web.xml] ونضعه في المجلد <مثال>\WEB-INF، حيث <مثال> هو المجلد الفعلي لتطبيق الويب [/exemple]. هذا الملف هو التالي:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

  <display-name>Application Exemple</display-name>
  <description>Application web minimale</description>
    <welcome-file-list>
        <welcome-file>/exemple.html</welcome-file>
    </welcome-file-list>    
</web-app>
  • الأسطر 2-5: العلامة الجذرية <web-app> مع سمات تم الحصول عليها عن طريق النسخ واللصق من الملف [web.xml] الخاص بتطبيق [/admin] في Tomcat (<tomcat>/server/webapps/admin/WEB-INF/web.xml).
  • السطر 7: اسم العرض لتطبيق الويب. وهو اسم حر له قيود أقل من اسم سياق التطبيق. يمكن إدراج مسافات فيه على سبيل المثال، وهو ما لا يمكن مع اسم السياق. يتم عرض هذا الاسم على سبيل المثال بواسطة مسؤول Tomcat:

Image

  1. السطر 8: وصف تطبيق الويب. يمكن بعد ذلك الحصول على هذا النص عن طريق البرمجة.
  2. الأسطر 9-11: قائمة ملفات الترحيب. تُستخدم العلامة <welcome-file-list> لتحديد قائمة العروض التي سيتم عرضها عندما يطلب العميل سياق التطبيق. قد يكون هناك عدة عروض. يتم عرض أول عرض يتم العثور عليه للعميل. هنا لدينا عرض واحد فقط: [/exemple.html]. وبالتالي، عندما يطلب العميل عنوان URL [/exemple]، سيتم في الواقع تسليمه عنوان URL [/exemple/exemple.html].

لنحفظ هذا الملف [web.xml] في <مثال>\WEB-INF:

Image

إذا كان Tomcat لا يزال نشطًا، فمن الممكن إجباره على إعادة تحميل تطبيق الويب [/exemple] باستخدام الرابط [Recharger]:

Image

أثناء عملية "إعادة التحميل" هذه، يعيد Tomcat قراءة الملف [web.xml] الموجود في [<exemple>\WEB-INF] إذا كان موجودًا. وسيكون هذا هو الحال هنا. إذا تم إيقاف Tomcat، فقم بإعادة تشغيله.

باستخدام متصفح، نطلب URL [http://localhost:8080/exemple/]:

Image

لقد نجحت آلية ملفات الاستقبال.

5.3.7. دمج Tomcat في Eclipse

سنقوم الآن بدمج Tomcat في Eclipse. يتيح هذا الدمج:

  • تشغيل / إيقاف Tomcat من Eclipse
  • تطوير تطبيقات الويب Java وتشغيلها على Tomcat. يتيح تكامل Eclipse / Tomcat تتبع (تصحيح) تشغيل التطبيق، بما في ذلك تشغيل فئات Java (servlets) التي يتم تنفيذها بواسطة Tomcat.

لنقم بتشغيل Eclipse، ثم نطلب عرض القسم [Servers]:

  • في [1]: Window/Show View/Other
  • في [2]: حدد العرض [Servers] وقم بـ [OK]
  • في [1]، لدينا عرض جديد [Servers]
  • إلى [2]، انقر بزر الماوس الأيمن على العرض واطلب إنشاء خادم جديد [New/Server]
  • في [3]، نختار الخادم [Tomcat 5.5] ثم نقوم بـ [Next]
  • إلى [4]، ونحدد مجلد تثبيت Tomcat 5.5
  • في [5]، نوضح أنه لا توجد مشاريع Eclipse/Tomcat في الوقت الحالي. ننتقل إلى [Finish]

يتم إضافة الخادم من خلال إضافة مجلد في مستكشف مشاريع Eclipse [6] وظهور خادم في العرض [servers] [7]:

في طريقة العرض [Servers] تظهر جميع الخوادم المعلنة، وهنا يظهر فقط خادم Tomcat 5.5 الذي قمنا بتسجيله للتو. النقر بزر الماوس الأيمن عليه يتيح الوصول إلى الأوامر التي تسمح بتشغيل – إيقاف – إعادة تشغيل الخادم:

Image

فيما سبق، قمنا بتشغيل الخادم. عند بدء تشغيله، يتم كتابة عدد من السجلات في العرض [Console]:

1
2
3
4
5
6
7
8
16 mai 2007 09:51:57 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
...
16 mai 2007 09:51:57 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
...
INFO: Find registry server-registry.xml at classpath resource
16 mai 2007 09:51:58 org.apache.catalina.startup.Catalina start
INFO: Server startup in 828 ms

يتطلب فهم هذه السجلات بعض الخبرة. لن نتطرق إلى هذا الأمر بالتفصيل في الوقت الحالي. ومع ذلك، من المهم التحقق من أنها لا تشير إلى أخطاء في تحميل السياقات. في الواقع، عند تشغيله، سيحاول خادم Tomcat / Eclipse تحميل سياق التطبيقات التي يديرها. يتضمن تحميل سياق تطبيق ما استخدام ملفه [web.xml] وتحميل فئة أو أكثر لتهيئته. قد تحدث عدة أنواع من الأخطاء عندئذٍ:

  • ملف [web.xml] غير صحيح من الناحية النحوية. هذا هو الخطأ الأكثر شيوعًا. يُنصح باستخدام أداة قادرة على التحقق من صحة مستند XML أثناء إنشائه.
  • لم يتم العثور على بعض الفئات المطلوب تحميلها. يتم البحث عنها في [WEB-INF/classes] و [WEB-INF/lib]. يجب عمومًا التحقق من وجود الفئات الضرورية وتدقيق تهجئة تلك المعلنة في ملف [web.xml].

الخادم الذي تم تشغيله من Eclipse لا يمتلك نفس التكوين الذي تم تثبيته في الفقرة 5.3. للتأكد من ذلك، نطلب عنوان URL [http://localhost:8080] باستخدام متصفح:

Image

لا تشير هذه الاستجابة إلى أن الخادم لا يعمل، بل إلى أن المورد / المطلوب منه غير متاح. مع خادم Tomcat المدمج في Eclipse، ستكون هذه الموارد عبارة عن مشاريع ويب. سنرى ذلك لاحقًا. في الوقت الحالي، دعونا نوقف Tomcat:

Image

يمكن تغيير وضع التشغيل السابق. لنعد إلى العرض [Servers] ونضغط مرتين على خادم Tomcat للوصول إلى خصائصه:

مربع الاختيار [1] هو المسؤول عن طريقة التشغيل السابقة. عند تحديده، لا يتم الإعلان عن تطبيقات الويب المطورة في Eclipse في ملفات تكوين خادم Tomcat المرتبط، بل في ملفات تكوين منفصلة. وبذلك، لا تتوفر التطبيقات المحددة افتراضيًا داخل خادم Tomcat: [admin] و [manager] وهما تطبيقان مفيدان. لذلك، سنقوم بإلغاء تحديد [1] وإعادة تشغيل Tomcat:

بعد ذلك، نطلب عنوان URL [http://localhost:8080] باستخدام متصفح:

Image

نجد أن العملية تسير كما هو موضح في الفقرة 5.3.4.

في الأمثلة السابقة، استخدمنا متصفحًا خارجيًّا لـ Eclipse. يمكن أيضًا استخدام متصفح داخلي لـ Eclipse:

Image

نختار أعلاه المتصفح الداخلي. لتشغيله من Eclipse، يمكن استخدام الرمز التالي:

Image

المتصفح الذي سيتم تشغيله فعليًا هو المتصفح المحدد بواسطة الخيار [Window -> Web Browser]. هنا، نحصل على المتصفح الداخلي:

Image

لنقم عند الحاجة بتشغيل Tomcat من Eclipse ونطلب في [1] عنوان URL [http://localhost:8080]:

Image

لنتبع الرابط [Tomcat Manager]:

Image

يُطلب الزوج [login / mot de passe] اللازم للوصول إلى التطبيق [manager]. وفقًا لإعدادات Tomcat التي قمنا بها سابقًا، يمكن إدخال [admin / admin] أو [manager / manager]. وبذلك نحصل على قائمة بالتطبيقات التي تم نشرها:

Image

5.4. SGBD Firebird

5.4.1. SGBD Firebird

SGBD Firebird متاح على الرابط [http://www.firebirdsql.org/]:

  • في [1]: نستخدم الخيار [Download.Firebird Relational Database]
  • في [2]: نحدد إصدار Firebird المطلوب
  • في [3]: يتم تنزيل ملف التثبيت الثنائي

بمجرد تنزيل الملف [3]، انقر عليه مرتين لتثبيت SGBD Firebird. يتم تثبيت SGBD في مجلد يحتوي على محتويات مشابهة لما يلي:

Image

توجد الملفات الثنائية في المجلد [bin]:

Image

fbguard.exe
يسمح بتشغيل/إيقاف SGBD
isql.exe
عميل سطري يسمح بإدارة قواعد البيانات

تجدر الإشارة إلى أن اسم المسؤول الافتراضي لـ SGBD هو [SYSDBA] وكلمة المرور هي [masterkey]. تم تثبيت قوائم في [Démarrer]:

Image

تسمح الخيار [Firebird Guardian] بتشغيل/إيقاف SGBD. بعد التشغيل، يبقى رمز SGBD في شريط مهام ويندوز:

لإنشاء واستخدام قواعد بيانات Firebird مع عميل سطر الأوامر [isql.exe]، من الضروري قراءة الوثائق المرفقة مع المنتج والتي يمكن الوصول إليها عبر اختصارات Firebird في [Démarrer/Programmes/Firebird 2.0].

من الطرق السريعة للعمل مع Firebird وتعلم لغة SQL استخدام عميل رسومي. أحد هذه العملاء هو IB-Expert الموصوف في الفقرة التالية.

5.4.2. العمل مع SGBD Firebird باستخدام IB- Expert

الموقع الرئيسي لـ IB-Expert هو [http://www.ibexpert.com/].

  • في [1]، نختار IBExpert
  • في [2]، يتم اختيار التنزيل بعد اختيار اللغة المفضلة
  • في [3]، يتم اختيار الإصدار المسمى "الشخصي" لأنه مجاني. ومع ذلك، يجب التسجيل في الموقع.
  • في [4]، قم بتنزيل IBExpert

يتم تثبيت IBExpert في مجلد مشابه لما يلي:

Image

الملف القابل للتنفيذ هو [ibexpert.exe]. عادةً ما يتوفر اختصار في قائمة [Démarrer]:

Image

بمجرد تشغيله، يعرض IBExpert النافذة التالية:

Image

لنستخدم الخيار [Database/Create Database] لإنشاء قاعدة بيانات:

Image

Server
(Serveur)
قد يكون [local] أو [remote]. هنا، يقع خادمنا على نفس الجهاز الذي يوجد عليه [IBExpert]. نختار
إذن [local]
Database
(Base de données)
استخدام الزر من النوع [dossier] في القائمة المنسدلة لتحديد ملف قاعدة البيانات. يقوم Firebird بوضع
القاعدة في ملف واحد. وهذا أحد مزاياها.
يتم نقل قاعدة البيانات من جهاز إلى آخر بمجرد نسخ الملف.
يتم إضافة اللاحقة [.fdb] تلقائيًا.
Username
SYSDBA هو المسؤول الافتراضي لتوزيعات Firebird الحالية
Password
(Nom de l'utilisateur)
masterkey هي كلمة مرور المسؤول SYSDBA لتوزيعات
Firebird الحالية
Dialect
اللهجة SQL التي يجب استخدامها
Register Database
(Référencer la base de données)
إذا تم تحديد المربع، فسيعرض IBExpert رابطًا إلى قاعدة البيانات التي تم إنشاؤها بعد إنشائها

إذا ظهرت لك الرسالة التالية عند النقر على زر الإنشاء [OK]:

Image

فهذا يعني أنك لم تقم بتشغيل Firebird. قم بتشغيله. ستظهر نافذة جديدة:

Image

Charset
(Jeu de caractères)
مجموعة الأحرف المراد استخدامها. يُنصح باختيار مجموعة
[ISO-8859-1] التي تسمح باستخدام الأحرف اللاتينية المُشَدَّدة.
Server version
(Version du serveur)
[IBExpert] قادر على إدارة مختلف SGBD المشتقة من Interbase.
اختر إصدار Firebird الذي قمت بتثبيته.

بمجرد تأكيد هذه النافذة الجديدة بواسطة [Register]، نحصل على النتيجة [1] في النافذة [Database Explorer]. قد يتم إغلاق هذه النافذة عن غير قصد. للحصول عليها مرة أخرى، قم بما يلي [2]:

للوصول إلى قاعدة البيانات التي تم إنشاؤها، يكفي النقر مرتين على الرابط الخاص بها. يعرض IBExpert عندئذٍ شجرة تتيح الوصول إلى خصائص قاعدة البيانات:

Image

5.4.3. إنشاء جدول بيانات

لنقم بإنشاء جدول. نضغط بزر الفأرة الأيمن على [Tables] (انظر النافذة أعلاه) ونختار الخيار [New Table]. تظهر لنا نافذة تعريف خصائص الجدول:

لنبدأ بتسمية الجدول [ARTICLES] باستخدام حقل الإدخال [1]:

Image

لنستخدم حقل الإدخال [2] لتعريف مفتاح أساسي [ID]:

Image

يتم تعيين حقل كمفتاح أساسي بالنقر المزدوج على منطقة [PK] (المفتاح الأساسي) في الحقل. لنقم بإضافة حقول باستخدام الزر الموجود أعلى [3]:

Image

ما لم يتم "تجميع" تعريفنا، لن يتم إنشاء الجدول. لنستخدم الزر [Compile] أعلاه لإنهاء تعريف الجدول. يقوم IBExpert بإعداد استعلامات SQL لإنشاء الجدول ويطلب التأكيد:

Image

ومن المثير للاهتمام أن IBExpert يعرض الاستعلامات SQL التي نفذها. وهذا يتيح تعلم لغة SQL وكذلك اللهجة SQL الخاصة التي قد يتم استخدامها. يتيح الزر [Commit] تأكيد المعاملة الجارية، بينما يتيح الزر [Rollback] إلغاءها. هنا نقبلها بواسطة [Commit]. وبذلك، يضيف IBExpert الجدول الذي تم إنشاؤه إلى شجرة قاعدة البيانات لدينا:

Image

بالنقر المزدوج على الجدول، يمكن الوصول إلى خصائصه:

Image

تسمح لنا اللوحة [Constraints] بإضافة قيود تكامل جديدة إلى الجدول. لنفتحها:

Image

نجد قيد المفتاح الأساسي الذي أنشأناه. يمكننا إضافة قيود أخرى:

  • مفاتيح خارجية [Foreign Keys]
  • قيود سلامة الحقول [Checks]
  • قيود تفرد الحقول [Uniques]

نشير إلى أن:

  • يجب أن تكون الحقول [ID, PRIX, STOCKACTUEL, STOKMINIMUM] >0
  • يجب أن يكون الحقل [NOM] غير فارغ وفريد

لنفتح اللوحة [Checks] ونضغط بزر الماوس الأيمن في مساحة تعريف القيود لإضافة قيد جديد:

Image

لنحدد القيود المطلوبة:

Image

يُلاحظ أعلاه أن القيد [NOM<>''] يستخدم علامتي اقتباس مائلة وليس علامتي اقتباس مزدوجة. لنقوم بتجميع هذه القيود باستخدام الزر [Compile] أعلاه:

Image

مرة أخرى، يُظهر IBExpert طابعًا تعليميًا من خلال الإشارة إلى الاستعلامات SQL التي نفذها. لننتقل الآن إلى اللوحة [Constraints/Uniques] للإشارة إلى أن الاسم يجب أن يكون فريدًا. وهذا يعني أنه لا يمكن أن يتكرر نفس الاسم مرتين في الجدول.

Image

لنحدد القيد:

Image

ثم نقوم بتجميعها. بعد ذلك، نفتح اللوحة [DDL] (لغة تعريف البيانات) للجدول [ARTICLES]:

Image

يقدم هذا الرمز SQL لتوليد الجدول مع جميع قيوده. يمكن حفظ هذا الرمز في نص برمجي لإعادة تشغيله لاحقًا:

SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

5.4.4. إدخال البيانات في جدول

حان الوقت الآن لإدخال البيانات في الجدول [ARTICLES]. للقيام بذلك، نستخدم لوحة [Data]:

Image

يتم إدخال البيانات بالنقر المزدوج على حقول الإدخال في كل سطر من الجدول. يتم إضافة سطر جديد باستخدام الزر [+]، وحذف سطر باستخدام الزر [-]. تتم هذه العمليات في معاملة يتم التحقق من صحتها باستخدام الزر [Commit Transaction] (انظر أعلاه). بدون هذا التحقق، ستفقد البيانات.

5.4.5. المحرر SQL لـ [IB-Expert]

تسمح لغة SQL (لغة الاستعلام الهيكلية) للمستخدم بما يلي:

  1. إنشاء جداول مع تحديد نوع البيانات التي ستخزنها، والقيود التي يجب أن تتحقق منها هذه البيانات
  2. إدراج البيانات فيها
  3. تعديل بعضها
  4. حذف بيانات أخرى
  5. استغلال محتواها للحصول على معلومات
  6. ...

يتيح IBExpert للمستخدم إجراء العمليات من 1 إلى 4 بطريقة رسومية. وقد رأينا ذلك للتو. عندما تحتوي قاعدة البيانات على العديد من الجداول التي تحتوي كل منها على مئات الأسطر، نحتاج إلى معلومات يصعب الحصول عليها بصريًا. لنفترض على سبيل المثال أن متجرًا افتراضيًا على الويب لديه آلاف المشترين شهريًا. يتم تسجيل جميع المشتريات في قاعدة بيانات. بعد ستة أشهر، نكتشف أن المنتج "X" معيب. نرغب في الاتصال بجميع الأشخاص الذين اشتروه حتى يعيدوا المنتج لاستبداله مجانًا. كيف يمكن العثور على عناوين هؤلاء المشترين ؟

  1. يمكننا الاطلاع بصريًا على جميع الجداول والبحث عن هؤلاء المشترين. سيستغرق ذلك بضع ساعات.
  2. يمكن إصدار أمر SQL الذي سيعطي قائمة بهؤلاء الأشخاص في بضع ثوانٍ

تكون لغة SQL مفيدة

  • تكون كمية البيانات في الجداول كبيرة
  • عندما يكون هناك العديد من الجداول المرتبطة ببعضها البعض
  • عندما تكون المعلومات المطلوبة موزعة على عدة جداول
  • ...

نقدم الآن محرر SQL الخاص بـ IBExpert. يمكن الوصول إليه عبر الخيار [Tools/SQL Editor] أو [F12]:

Image

وبذلك يمكننا الوصول إلى محرر استعلامات SQL متطور يمكننا من خلاله تشغيل الاستعلامات. لنكتب استعلامًا:

Image

نقوم بتنفيذ الاستعلام SQL باستخدام الزر [Execute] أعلاه. نحصل على النتيجة التالية:

Image

أعلاه، تعرض علامة التبويب [Results] جدول نتائج الأمر SQL [Select]. لإصدار أمر جديد SQL، يكفي العودة إلى علامة التبويب [Edit]. عندها نجد الأمر SQL الذي تم تنفيذه.

Image

هناك العديد من الأزرار المفيدة في شريط الأدوات:

  • يتيح الزر [New Query] الانتقال إلى طلب جديد SQL:

Image

نحصل عندئذٍ على صفحة تحرير فارغة:

Image

يمكننا بعد ذلك إدخال أمر جديد SQL:

Image

وتنفيذه:

Image

لنعد إلى علامة التبويب [Edit]. يتم تخزين الأوامر المختلفة SQL التي تم إصدارها بواسطة [IBExpert]. يتيح الزر [Previous Query] العودة إلى أمر SQL تم إصداره مسبقًا:

Image

ثم نعود إلى الطلب السابق:

Image

أما الزر [Next Query] فيسمح بالانتقال إلى الأمر التالي SQL:

Image

ثم نجد الأمر SQL التالي في قائمة الأوامر SQL المخزنة:

Image

يتيح الزر [Delete Query] حذف أمر SQL من قائمة الأوامر المخزنة:

Image

يتيح الزر [Clear Current Query] مسح محتوى المحرر للأمر SQL المعروض:

Image

يتيح الزر [Commit] تأكيد التعديلات التي تم إجراؤها على قاعدة البيانات بشكل نهائي:

Image

يتيح الزر [RollBack] إلغاء التعديلات التي تم إجراؤها على قاعدة البيانات منذ آخر [Commit]. إذا لم يتم إجراء أي [Commit] منذ الاتصال بقاعدة البيانات، فسيتم إلغاء التعديلات التي تم إجراؤها منذ هذا الاتصال.

Image

لنأخذ مثالاً. لنقم بإدراج سطر جديد في الجدول:

Image

يتم تنفيذ الأمر SQL ولكن لا يظهر أي عرض. لا نعرف ما إذا كان الإدراج قد تم أم لا. لمعرفة ذلك، لنقم بتنفيذ الأمر SQL التالي لـ [New Query]:

Image

نحصل على النتيجة التالية [Execute]:

Image

وبالتالي، تم إدراج السطر بنجاح. دعونا الآن نفحص محتوى الجدول بطريقة أخرى. انقر نقرًا مزدوجًا على الجدول [ARTICLES] في مستكشف قواعد البيانات:

Image

نحصل على الجدول التالي:

Image

يتيح الزر الذي يحمل علامة السهم أعلاه تحديث الجدول. بعد التحديث، لا يتغير الجدول أعلاه. يبدو أن السطر الجديد لم يتم إدراجه. لنعد إلى المحرر SQL (F12) ثم نؤكد الأمر SQL الذي تم إصداره باستخدام الزر [Commit]:

Image

بعد ذلك، نعود إلى الجدول [ARTICLES]. يمكننا ملاحظة أنه لم يتغير شيء حتى عند استخدام الزر [Refresh]:

Image

أعلاه، لنفتح علامة التبويب [Fields] ثم نعود إلى علامة التبويب [Data]. هذه المرة، يظهر السطر الذي تم إدراجه بشكل صحيح:

Image

عندما يبدأ إصدار الأوامر المختلفة SQL، يفتح المحرر ما يسمى بمعاملة على قاعدة البيانات. لن تكون التعديلات التي أجراها محرر SQL بواسطة أوامر SQL مرئية إلا طالما بقينا في نفس المحرر SQL (يمكن فتح عدة محررات). يبدو الأمر كما لو أن المحرر SQL لا يعمل على قاعدة البيانات الفعلية بل على نسخة خاصة به. في الواقع، لا يحدث الأمر بهذه الطريقة بالضبط، لكن هذه الصورة يمكن أن تساعدنا على فهم مفهوم المعاملة. لن تظهر جميع التعديلات التي تم إجراؤها على النسخة خلال المعاملة في قاعدة البيانات الفعلية إلا بعد أن يتم التحقق من صحتها بواسطة [Commit Transaction]. عندئذ تنتهي المعاملة الحالية وتبدأ معاملة جديدة.

يمكن إلغاء التعديلات التي تم إجراؤها خلال المعاملة من خلال عملية تسمى [Rollback]. لنقم بالتجربة التالية. لنبدأ معاملة جديدة (يكفي تنفيذ [Commit] على المعاملة الحالية) باستخدام الأمر SQL التالي:

Image

لننفذ هذا الأمر الذي يحذف جميع الأسطر من الجدول [ARTICLES]، ثم ننفذ [New Query] الأمر الجديد SQL التالي:

Image

نحصل على النتيجة التالية:

Image

تم حذف جميع الأسطر. تذكر أن هذا تم على نسخة من الجدول [ARTICLES]. للتحقق من ذلك، انقر نقرًا مزدوجًا على الجدول [ARTICLES] أدناه:

Image

ونعرض علامة التبويب [Data]:

Image

حتى عند استخدام الزر [Refresh] أو الانتقال إلى علامة التبويب [Fields] ثم العودة إلى علامة التبويب [Data]، لا يتغير المحتوى أعلاه. وقد تم شرح ذلك. نحن الآن في معاملة أخرى تعمل على نسختها الخاصة. لنعد الآن إلى محرر SQL (F12) ونستخدم الزر [RollBack] لإلغاء عمليات حذف الأسطر التي تمت:

Image

يُطلب منا التأكيد:

Image

لنؤكد. يؤكد المحرر SQL أن التعديلات قد تم إلغاؤها:

Image

لنعيد تشغيل الطلب SQL أعلاه للتحقق. نجد الأسطر التي تم حذفها:

Image

أعادت العملية [Rollback] النسخة التي يعمل عليها المحرر SQL إلى الحالة التي كانت عليها في بداية المعاملة.

5.4.6. تصدير قاعدة بيانات Firebird إلى نص برمجي SQL

عند العمل مع العديد من SGBD، كما هو الحال في البرنامج التعليمي "استمرارية Java 5 من خلال الممارسة"، من المفيد أن يكون بإمكانك تصدير قاعدة بيانات من ملف SGBD 1 إلى نص برمجي SQL لاستيراد هذا الأخير بعد ذلك إلى ملف SGBD 2. وهذا يوفر عددًا من العمليات اليدوية. ومع ذلك، فإن هذا ليس ممكنًا دائمًا، حيث إن ملفات SGBD غالبًا ما تحتوي على امتدادات SQL خاصة.

دعونا نوضح كيفية تصدير قاعدة البيانات [dbarticles] السابقة إلى نص برمجي SQL:

  • إلى [1]: أدوات / استخراج MetaData، لاستخراج البيانات الوصفية
  • إلى [2]: علامة التبويب "كائنات الوصف"
  • في [3]: حدد الجدول [Articles] الذي تريد استخراج هيكله (البيانات الوصفية)
  • في [4]: لنقل الكائن المحدد على اليسار إلى اليمين
  • في [5]: ستكون الجدول [ARTICLES] جزءًا من البيانات الوصفية المستخرجة
  • في [6]: تُستخدم علامة التبويب [Table de données] لتحديد الجداول التي نريد استخراج محتواها (في الخطوة السابقة، تم تصدير بنية الجدول)
  • في [7]: لنقل الكائن المحدد على اليسار إلى اليمين
  • في [8]: النتيجة التي تم الحصول عليها
  • في [9]: تتيح علامة التبويب [Options] تكوين بعض معلمات الاستخراج
  • في [10]: نقوم بإلغاء تحديد الخيارات المتعلقة بإنشاء الأوامر SQL التي تسمح بالاتصال بقاعدة البيانات. وهي خاصة بـ Firebird وبالتالي لا تهمنا.
  • في [11]: تتيح علامة التبويب [Sortie] تحديد المكان الذي سيتم فيه إنشاء البرنامج النصي SQL
  • في [12]: نحدد أن البرنامج النصي يجب أن يتم إنشاؤه في ملف
  • في [13]: نحدد موقع هذا الملف
  • في [14]: يتم بدء إنشاء البرنامج النصي SQL

النص البرمجي الذي تم إنشاؤه، بعد حذف التعليقات منه، هو التالي:

SET SQL DIALECT 3;
SET NAMES ISO8859_1;

CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);

INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (1, 'article1', 100, 10, 1);
INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (2, 'article2', 200, 20, 2);
INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (3, 'article3', 300, 30, 3);

COMMIT WORK;

ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

ملاحظة: السطران 1-2 خاصان بـ Firebird. يجب حذفهما من البرنامج النصي الذي تم إنشاؤه للحصول على SQL عام.

5.4.7. برنامج تشغيل Firebird JDBC لـ

يصل برنامج Java إلى بيانات قاعدة البيانات عبر برنامج تشغيل JDBC الخاص بـ SGBD المستخدم:

في بنية متعددة الطبقات مثل تلك المذكورة أعلاه، يتم استخدام برنامج التشغيل JDBC [1] من قبل الطبقة [dao] (كائن الوصول إلى البيانات) للوصول إلى بيانات قاعدة البيانات.

برنامج التشغيل JDBC الخاص بـ Firebird متاح على الرابط الذي تم تنزيل Firebird منه:

  • في [1]: نختار تنزيل برنامج التشغيل JDBC
  • في [2]: نختار برنامج تشغيل JDBC متوافق مع JDK 1.5
  • في [3]: الأرشيف الذي يحتوي على برنامج التشغيل JDBC هو [jaybird-full-2.1.1.jar]. سنقوم باستخراج هذا الملف. سيتم استخدامه لجميع الأمثلة JPA مع Firebird.

نضعه في مجلد سنسميه لاحقًا <jdbc>:

Image

للتحقق من برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer (الفقرة 5.2.6). نبدأ بإعلان برنامج التشغيل JDBC لـ Firebird:

  • في [1]: قم بـ Window / Preferences
  • إلى [2]: اختر الخيار SQL Explorer / JDBC Drivers
  • في [3]: اختر برنامج التشغيل JDBC لـ Firebird
  • في [4]: انتقل إلى مرحلة التكوين
  • في [5]: انتقل إلى علامة التبويب [Extra Class Path]
  • باستخدام [6]، حدد ملف برنامج التشغيل JDBC. بعد القيام بذلك، سيظهر هذا الملف في [7]. سنختار هنا برنامج التشغيل الذي تم وضعه مسبقًا في المجلد <jdbc>
  • في [8]: اسم فئة Java لبرنامج التشغيل JDBC. يمكن الحصول عليه من خلال الزر [8b].
  • نقوم بـ [OK] للتحقق من صحة التكوين
  • إلى [9]: تم الآن تكوين برنامج التشغيل JDBC لـ Firebird. يمكننا الآن البدء في استخدامه.
  • إلى [1]: افتح منظورًا جديدًا
  • إلى [2]: اختر المنظور [SQL Explorer]
  • في [3]: إنشاء اتصال جديد
  • في [4]: تسميته
  • في [5]: اختر من القائمة المنسدلة برنامج التشغيل JDBC لـ Firebird
  • في [6]: تحديد عنوان URL للقاعدة التي تريد الاتصال بها، هنا: [jdbc:firebirdsql:localhost/3050:C:\data\2006-2007\eclipse\dvp-jpa\annexes\jpa\jpa.fdb]. [jpa.fdb] هي القاعدة التي تم إنشاؤها مسبقًا باستخدام IBExpert.
  • في [7]: اسم مستخدم الاتصال، هنا [sysdba]، مسؤول Firebird
  • في [8]: كلمة مروره [masterkey]
  • نقوم بالتحقق من صحة إعدادات الاتصال بواسطة [OK]
  • في [1]: نضغط مرتين على اسم الاتصال الذي نريد فتحه
  • في [2]: نقوم بتسجيل الدخول (sysdba، masterkey)
  • في [3]: يتم فتح الاتصال
  • في [4]: تظهر بنية قاعدة البيانات. نرى فيها الجدول [ARTICLES]. نختاره.
  • في [5]: في النافذة [Database Detail]، لدينا تفاصيل الكائن المحدد في [4]، وهنا الجدول [ARTICLES]
  • في [6]: توفر علامة التبويب [Columns] بنية الجدول
  • في [7]: توفر علامة التبويب [Preview] بنية الجدول

يمكن إصدار استعلامات SQL في النافذة [SQL Editor]:

  • في [1]: اختر اتصالاً مفتوحاً
  • في [2]: اكتب الأمر SQL المراد تنفيذه
  • في [3]: تنفيذه
  • في [4]: تذكير بالأمر الذي تم تنفيذه
  • في [5]: نتيجته

5.5. SGBD MySQL5

5.5.1. التثبيت

يتوفر SGBD MySQL5 على الرابط [http://dev.mysql.com/downloads/]:

  • في [1]: اختر الإصدار المطلوب
  • في [2]: اختر إصدار Windows
  • في [3]: اختر إصدار Windows المطلوب
  • في [4]: يحتوي ملف zip الذي تم تنزيله على ملف قابل للتنفيذ [Setup.exe] [4b] الذي يجب استخراجه وتشغيله لتثبيت MySQL5
  • إلى [5]: اختر التثبيت العادي
  • في [6]: بمجرد انتهاء التثبيت، يمكن تكوين الخادم MySQL5
  • في [7]: اختر التكوين القياسي، وهو الذي يطرح أقل عدد من الأسئلة
  • في [8]: سيكون الخادم MySQL5 خدمة ويندوز
  • في [9]: بشكل افتراضي، يكون مسؤول الخادم هو root بدون كلمة مرور. يمكن الاحتفاظ بهذا الإعداد أو تعيين كلمة مرور جديدة لـ root. إذا تم تثبيت MySQL5 بعد إلغاء تثبيت إصدار سابق، فقد تفشل هذه العملية. وهناك طرق أقل للعودة إلى الوضع السابق.
  • في [10]: يُطلب تكوين الخادم

يؤدي تثبيت MySQL5 إلى إنشاء مجلد في [Démarrer / Programmes ]:

Image

يمكن استخدام [MySQL Server Instance Config Wizard] لإعادة تكوين الخادم:

  • في [3]: نقوم بتغيير كلمة مرور الجذر (هنا root/root)

5.5.2. تشغيل / إيقاف MySQL5

تم تثبيت الخادم MySQL5 كخدمة ويندوز ذات تشغيل تلقائي، c.a.d يتم تشغيله فور بدء تشغيل ويندوز. طريقة التشغيل هذه غير عملية. سنقوم بتغييرها:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • إلى [1]: نضغط مرتين على [Services]
  • إلى [2]: نرى أن هناك خدمة تسمى [MySQL]، وأنها قيد التشغيل [3] وأن بدء تشغيلها تلقائي [4].

لتعديل هذا الأداء، نقوم بالنقر المزدوج على الخدمة [MySQL]:

  • إلى [1]: نضبط الخدمة على التشغيل اليدوي
  • إلى [2]: نقوم بإيقافها
  • في [3]: نؤكد التكوين الجديد للخدمة

لتشغيل وإيقاف الخدمة MySQL يدويًا، يمكن إنشاء اختصارين:

  • في [1]: الاختصار لتشغيل MySQL5
  • في [2]: الاختصار لإيقافها

5.5.3. عملاء إدارة MySQL

على موقع MySQL، يمكن العثور على عملاء إدارة SGBD:

  • في [1]: اختر [MySQL GUI Tools] الذي يجمع بين العديد من العملاء الرسوميين الذين يسمحون إما بإدارة SGBD أو باستخدامه
  • في [2]: اختر إصدار Windows المناسب
  • في [3]: يتم استرداد ملف .msi لتنفيذه
  • إلى [4]: بمجرد الانتهاء من التثبيت، تظهر اختصارات جديدة في المجلد [Menu Démarrer / Programmes / mySQL].

دعونا نطلق MySQL (عبر الاختصارات التي أنشأتها)، ثم نطلق [MySQL Administrator] عبر القائمة أعلاه:

  • في [1]: أدخل كلمة مرور المستخدم root (root هنا)
  • في [2]: نحن متصلون ونرى أن MySQL نشط

5.5.4. إنشاء مستخدم jpa وقاعدة بيانات jpa

يستخدم البرنامج التعليمي MySQL5 مع قاعدة بيانات تسمى jpa ومستخدم يحمل نفس الاسم. سنقوم بإنشائهما الآن. أولاً المستخدم:

  • في [1]: نختار [User Administration]
  • في [2]: نضغط بزر الفأرة الأيمن في الجزء [User accounts] لإنشاء مستخدم جديد
  • في [3]: اسم المستخدم هو jpa وكلمة المرور هي jpa
  • في [4]: نؤكد الإنشاء
  • في [5]: يظهر المستخدم [jpa] في النافذة [User Accounts]

الآن قاعدة البيانات:

  • في [1]: اختيار الخيار [Catalogs]
  • في [2]: النقر بزر الماوس الأيمن على النافذة [Schemata] لإنشاء مخطط جديد (يشير إلى قاعدة بيانات)
  • في [3]: تسمية المخطط الجديد
  • في [4]: يظهر في نافذة [Schemata]
  • في [5]: يتم تحديد المخطط [jpa]
  • في [6]: تظهر كائنات مخطط [jpa]، ولا سيما الجداول. لا توجد أي منها بعد. يمكن إنشاء واحدة بالنقر بزر الماوس الأيمن. نترك للقارئ القيام بذلك.

لنعد إلى المستخدم [jpa] لمنحه جميع الحقوق على المخطط [jpa]:

  • إلى [1]، ثم [2]: نختار المستخدم [jpa]
  • في [3]: نختار علامة التبويب [Schema Privileges]
  • في [4]: يتم تحديد المخطط [jpa]
  • في [5]: سنمنح المستخدم [jpa] جميع الامتيازات على المخطط [jpa]
  • إلى [6]: يتم التحقق من صحة التغييرات التي تم إجراؤها

للتحقق من أن المستخدم [jpa] يمكنه العمل مع المخطط [jpa]، نغلق حساب المسؤول MySQL. نعيد تشغيله ونسجل الدخول هذه المرة باسم [jpa/jpa]:

  • في [1]: نقوم بتسجيل الدخول (jpa/jpa)
  • في [2]: تم الاتصال بنجاح وفي [Schemata]، نرى المخططات التي نمتلك حقوقًا عليها. نرى المخطط [jpa].

سنقوم الآن بإنشاء نفس الجدول [ARTICLES] كما في SGBD Firebird باستخدام البرنامج النصي SQL [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.

  • إلى [1]: استخدم التطبيق [MySQL Query Browser]
  • في [2]، [3]، [4]: قم بتسجيل الدخول (jpa / jpa / jpa)
  • إلى [5]: فتح البرنامج النصي SQL لتنفيذه
  • في [6]: يشير إلى البرنامج النصي [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.
  • في [7]: البرنامج النصي الذي تم تحميله
  • في [8]: يتم تنفيذه
  • في [9]: تم إنشاء الجدول [ARTICLES]

5.5.5. برنامج التشغيل JDBC من MySQL5

يمكن تنزيل برنامج التشغيل JDBC من MySQL من نفس المكان الذي تم تنزيل SGBD منه:

  • في [1]: اختر برنامج التشغيل JDBC المناسب
  • في [2]: اختر إصدار Windows المناسب
  • في [3]: في ملف zip الذي تم استرداده، أرشيف Java الذي يحتوي على برنامج التشغيل JDBC هو [mysql-connector-java-5.0.5-bin.jar]. سنقوم باستخراجه لاستخدامه في أمثلة البرنامج التعليمي JPA.

نضعه مثل السابق (الفقرة 5.4.7 في المجلد <jdbc>:

لاختبار برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُطلب من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: تم تعيين أرشيف برنامج التشغيل JDBC من MySQL5
  • في [2]: برنامج التشغيل JDBC من MySQL5 متاح
  • إلى [3]: تعريف الاتصال (user, password)=(jpa, jpa)
  • في [4]: الاتصال نشط
  • في [5]: قاعدة البيانات متصلة

5.6. SGBD PostgreSQL

5.6.1. التثبيت

SGBD PostgreSQL متاح على الرابط [http://www.postgresql.org/download/]:

  • في [1]: مواقع تنزيل PostgreSQL
  • في [2]: اختر إصدار Windows
  • في [3]: اختر إصدارًا مع أداة التثبيت
  • في [4]: محتوى ملف zip الذي تم تنزيله. انقر نقرًا مزدوجًا على الملف [postgresql-8.2.msi]
  • في [5]: الصفحة الأولى من مساعد التثبيت
  • إلى [6]: اختر التثبيت النموذجي بقبول القيم الافتراضية
  • في [6b]: إنشاء حساب Windows الذي سيقوم بتشغيل الخدمة PostgreSQL، هنا الحساب pgres بكلمة المرور pgres.
  • في [7]: السماح لـ PostgreSQL بإنشاء الحساب [pgres] إذا لم يكن موجودًا بالفعل
  • في [8]: تعيين حساب المسؤول لـ SGBD، هنا postgres مع كلمة المرور postgres
  • في [9] و [10]: قبول القيم الافتراضية حتى نهاية المعالج. سيتم تثبيت PostgreSQL.

يؤدي تثبيت PostgreSQL إلى إنشاء مجلد في [Démarrer / Programmes ]:

Image

5.6.2. تشغيل / إيقاف PostgreSQL

تم تثبيت الخادم PostgreSQL كخدمة ويندوز ذات تشغيل تلقائي، ويتم تشغيل c.a.d فور بدء تشغيل ويندوز. طريقة التشغيل هذه غير عملية. سنقوم بتغييرها:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • إلى [1]: نضغط مرتين على [Services]
  • إلى [2]: نرى أن هناك خدمة تسمى [PostgreSQL]، وأنها قيد التشغيل [3] وأن بدء تشغيلها تلقائي [4].

لتعديل هذا الأداء، نقوم بالنقر المزدوج على الخدمة [PostgreSQL]:

  • إلى [1]: نضبط الخدمة على التشغيل اليدوي
  • إلى [2]: نقوم بإيقافها
  • في [3]: نؤكد التكوين الجديد للخدمة

لتشغيل وإيقاف الخدمة PostgreSQL يدويًا، يمكن استخدام الاختصارات الموجودة في المجلد [PostgreSQL]:

  • في [1]: الاختصار لتشغيل PostgreSQL
  • في [2]: الاختصار لإيقافه

5.6.3. إدارة PostgreSQL

في لقطة الشاشة أعلاه، يتيح التطبيق [pgAdmin III] (3) إدارة SGBD و PostgreSQL. لنقم بتشغيل SGBD، ثم [pgAdmin III] عبر القائمة أعلاه:

  • في [1]: انقر نقرًا مزدوجًا على الخادم PostgreSQL للاتصال به
  • إلى [2,3]: قم بتسجيل الدخول كمسؤول لـ SGBD، هنا (postgres / postgres)
  • في [4]: قاعدة البيانات الوحيدة الموجودة
  • في [5]: المستخدم الوحيد الموجود

5.6.4. إنشاء مستخدم jpa وقاعدة بيانات jpa

يستخدم هذا الدليل التعليمي PostgreSQL مع قاعدة بيانات تسمى jpa ومستخدم يحمل الاسم نفسه. سنقوم الآن بإنشائهما. أولاً المستخدم:

  • في [1]: نقوم بإنشاء دور جديد (~مستخدم)
  • في [2]: إنشاء المستخدم jpa
  • في [3]: كلمة المرور هي jpa
  • في [4]: نكرر كلمة المرور
  • في [5]: نسمح للمستخدم بإنشاء قواعد بيانات
  • في [6]: يظهر المستخدم [jpa] ضمن أدوار تسجيل الدخول

الآن قاعدة البيانات:

  • في [1]: يتم إنشاء اتصال جديد بالخادم
  • في [2]: سيُسمى jpa
  • في [3]: الجهاز الذي نريد الاتصال به
  • في [4]: المستخدم الذي يتصل
  • في [5]: كلمة المرور الخاصة به. يتم التحقق من صحة تكوين الاتصال بواسطة [OK]
  • في [6]: تم إنشاء الاتصال الجديد. وهو مملوك للمستخدم jpa. وسيقوم هذا المستخدم الآن بإنشاء قاعدة بيانات جديدة:
  • n [1]: نضيف قاعدة بيانات جديدة
  • في [2]: اسمها هو jpa
  • في [3]: مالكها هو المستخدم jpa الذي تم إنشاؤه سابقًا. يتم التحقق من صحة ذلك بواسطة [OK]
  • في [4]: تم إنشاء قاعدة البيانات jpa. بنقرة واحدة عليها، يتم توصيلنا بها ونكتشف هيكلها:
  • إلى [5]: تظهر كائنات مخطط [jpa]، ولا سيما الجداول. لا توجد أي منها بعد. يمكن إنشاء واحدة بالنقر بزر الماوس الأيمن. نترك للقارئ القيام بذلك.

سنقوم الآن بإنشاء نفس الجدول [ARTICLES] كما في حالة SGBD السابقة باستخدام البرنامج النصي SQL [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.

  • إلى [1]: افتح محرر SQL
  • إلى [2]: افتح البرنامج النصي SQL
  • في [3]: حدد البرنامج النصي [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.
  • إلى [4]: البرنامج النصي تم تحميله. يتم تنفيذه.
  • في [5]: تم إنشاء الجدول [ARTICLES].
  • في [6, 7]: محتواه

5.6.5. برنامج التشغيل JDBC من PostgreSQL

برنامج التشغيل JDBC من PostgreSQL متاح في المجلد [jdbc] ضمن مجلد تثبيت PostgreSQL:

نضع أرشيف Jdbc كما في الحالات السابقة (الفقرة 5.4.7) في المجلد <jdbc>:

لاختبار برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُطلب من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: تم تعيين أرشيف برنامج التشغيل JDBC من PostgreSQL
  • في [2]: برنامج التشغيل JDBC من PostgreSQL متاح
  • إلى [3]: تعريف الاتصال (user, password)=(jpa, jpa)
  • في [4]: الاتصال نشط
  • في [5]: قاعدة البيانات متصلة
  • في [6]: محتوى الجدول [ARTICLES]

5.7. SGBD Oracle 10g Express

5.7.1. التثبيت

يتوفر SGBD Oracle 10g Express على الرابط [http://www.oracle.com/technology/software/products/database/xe/index.html]:

  • في [1]: موقع تنزيل Oracle 10g Express
  • في [2]: اختر إصدار Windows. بمجرد تنزيل الملف، قم بتشغيله:
  • في [1]: انقر نقرًا مزدوجًا على الملف [OracleXE.exe]
  • في [2]: الصفحة الأولى من مساعد التثبيت
  • إلى [3]: قبول الترخيص
  • إلى [4]: قبول القيم الافتراضية.
  • في [5,6]: سيحصل المستخدم SYSTEM على كلمة مرور system.
  • في [7]: بدء التثبيت

يؤدي تثبيت Oracle 10g Express إلى إنشاء مجلد في [Démarrer / Programmes ]:

Image

5.7.2. تشغيل / إيقاف Oracle 10g

كما هو الحال مع الإصدارات السابقة SGBD، تم تثبيت Oracle 10g كخدمة Windows يتم تشغيلها تلقائيًا عند بدء التشغيل. سنقوم بتغيير هذا الإعداد:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • إلى [1]: نضغط مرتين على [Services]
  • إلى [2]: نلاحظ وجود خدمة تسمى [OracleServiceXE]، وأنها قيد التشغيل [3] وأن تشغيلها تلقائي [4].
  • في [5]: هناك خدمة أخرى من Oracle، تسمى "Listener"، وهي نشطة أيضًا ويتم تشغيلها تلقائيًا.

لتعديل هذا الأداء، نقوم بالنقر المزدوج على الخدمة [OracleServiceXE]:

  • في [1]: نضبط الخدمة على التشغيل اليدوي
  • في [2]: نقوم بإيقافها
  • في [3]: نؤكد التكوين الجديد للخدمة

سنقوم بنفس الشيء مع الخدمة [OracleXETNSListener] (انظر [5] أعلاه). لتشغيل وإيقاف الخدمة OracleServiceXE يدويًا، يمكننا استخدام الاختصارات الموجودة في المجلد [Oracle]:

  • في [1]: لبدء تشغيل SGBD
  • إلى [2]: لإيقافه
  • إلى [3]: لإدارته (مما يؤدي إلى تشغيله إذا لم يكن قيد التشغيل بالفعل)

5.7.3. إنشاء مستخدم jpa وقاعدة بيانات jpa

في لقطة الشاشة أعلاه، يتيح التطبيق [3] إدارة SGBD Oracle 10g Express. دعونا نطلق SGBD [1]، ثم تطبيق الإدارة [3] عبر القائمة أعلاه:

  • في [1]: قم بتسجيل الدخول كمسؤول لـ SGBD، هنا (system / system)
  • في [2]: نقوم بإنشاء مستخدم جديد
  • في [4]: اسم المستخدم
  • في [5, 6]: كلمة المرور الخاصة به، هنا jpa
  • في [7]: تم إنشاء المستخدم jpa

في Oracle، يتم ربط المستخدم تلقائيًا بقاعدة بيانات تحمل الاسم نفسه. وبالتالي، فإن قاعدة البيانات jpa موجودة في نفس الوقت الذي يوجد فيه المستخدم jpa.

5.7.4. إنشاء الجدول [ARTICLES] لقاعدة البيانات jpa

تم تثبيت OracleXE مع عميل SQL يعمل في وضع سطر الأوامر. يمكن العمل بشكل أكثر راحة باستخدام SQL Developer المقدم أيضًا من Oracle. يمكن العثور عليه على الموقع:

[http://www.oracle.com/technology/products/database/sql_developer/index.html]

  • في [1]: موقع التنزيل
  • في [2]: اختر إصدار Windows بدون JRE إذا كان هذا الأخير مثبتًا بالفعل (كما هو الحال هنا)، حيث أن [SQL Developer] هو تطبيق Java.
  • في [3]: قم بفك ضغط ملف zip الذي تم تنزيله
  • إلى [4]: قم بتشغيل الملف القابل للتنفيذ [sqldeveloper.exe]
  • في [5]: عند التشغيل الأول لـ [SQL Developer]، حدد مسار Jre المثبت على الجهاز
  • في [5b]: إنشاء اتصال جديد
  • في [6]: يتيح SQL Developer الاتصال بمختلف SGBD. اختر Oracle.
  • في [7]: الاسم الممنوح للاتصال الذي يتم إنشاؤه
  • في [8]: مالك الاتصال
  • في [9]: كلمة المرور الخاصة به (jpa)
  • في [10]: الاحتفاظ بالقيم الافتراضية
  • في [11]: لاختبار الاتصال (يجب تشغيل Oracle)
  • في [12]: لإنهاء تكوين الاتصال
  • في [13]: كائنات قاعدة البيانات jpa
  • في [14]: يمكن إنشاء جداول. كما في الحالات السابقة، سنقوم بإنشاء الجدول [ARTICLES] من البرنامج النصي الذي تم إنشاؤه في الفقرة 5.4.6.
  • في [15]: نفتح البرنامج النصي SQL
  • إلى [16]: نحدد البرنامج النصي SQL الذي تم إنشاؤه في الفقرة 5.4.6.
  • في [17]: البرنامج النصي الذي سيتم تنفيذه
  • في [18]: نتيجة التنفيذ: تم إنشاء الجدول [ARTICLES]. انقر عليه مرتين للوصول إلى خصائصه.
  • في [19]: محتوى الجدول.

5.7.5. برنامج التشغيل JDBC لـ OracleXE

برنامج التشغيل JDBC لـ OracleXE متاح في المجلد [jdbc/lib] ضمن مجلد تثبيت OracleXE [1]:

نضع أرشيف Jdbc [ojdbc14.jar] مثل الأرشيفات السابقة (الفقرة 5.4.7) في المجلد <jdbc> [2]:

لاختبار برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُرجى من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: تم تعيين أرشيف برنامج التشغيل JDBC من OracleXE
  • في [2]: برنامج التشغيل JDBC من OracleXE متاح
  • في [3]: تعريف الاتصال (user, password)=(jpa, jpa)
  • في [4]: الاتصال نشط
  • في [5]: قاعدة البيانات متصلة
  • في [6]: محتوى الجدول [ARTICLES]

5.8. SGBD SQL Server Express 2005

5.8.1. التثبيت

يتوفر SGBD SQL Server Express 2005 على الرابط [http://msdn.microsoft.com/vstudio/express/sql/download/]:

  • في [1]: قم أولاً بتنزيل وتثبيت منصة .NET 2.0
  • في [2]: ثم قم بتثبيت وتنزيل SQL Server Express 2005
  • في [3]: ثم قم بتثبيت وتنزيل SQL Server Management Studio Express الذي يسمح بإدارة SQL Server

يؤدي تثبيت SQL Server Express إلى إنشاء مجلد في [Démarrer / Programmes ]:

  • في [1]: تطبيق تكوين خادم SQL. كما يتيح تشغيل/إيقاف الخادم
  • في [2]: تطبيق إدارة الخادم

5.8.2. تشغيل / إيقاف خادم SQL

كما هو الحال مع SGBD السابقة، تم تثبيت خادم SQL Express كخدمة ويندوز ذات بدء تشغيل تلقائي. نقوم بتغيير هذا التكوين:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • إلى [1]: نضغط مرتين على [Services]
  • إلى [2]: نلاحظ وجود خدمة تسمى [SQL Server]، وأنها قيد التشغيل [3] وأن تشغيلها تلقائي [4].
  • في [5]: هناك خدمة أخرى مرتبطة بـ SQL Server، تسمى "SQL Server Browser" وهي نشطة أيضًا ويتم تشغيلها تلقائيًا.

لتعديل هذا الأداء، نقوم بالنقر المزدوج على الخدمة [SQL Server]:

  • إلى [1]: نضبط الخدمة على التشغيل اليدوي
  • في [2]: نقوم بإيقاف تشغيلها
  • في [3]: نؤكد التكوين الجديد للخدمة

نقوم بنفس الإجراء مع الخدمة [SQL Server Browser] (انظر [5] أعلاه). لتشغيل وإيقاف خدمة SQL يدويًا، يمكن استخدام التطبيق [1] الموجود في المجلد [SQL server]:

  • في [1]: تأكد من أن بروتوكول TCP/IP نشط (enabled)، ثم انتقل إلى خصائص البروتوكول.
  • في [2]: في علامة التبويب [IP Addresses]، الخيار [IPAll]:
    • يُترك الحقل [TCP Dynamic ports] فارغًا
    • يتم تعيين منفذ الاستماع للخادم على 1433 في [TCP Port]
  • في [3]: النقر بزر الماوس الأيمن على الخدمة [SQL Server] يتيح الوصول إلى خيارات تشغيل/إيقاف الخادم. هنا، نقوم بتشغيله.
  • في [4]: تم تشغيل خادم SQL

5.8.3. إنشاء مستخدم jpa وقاعدة بيانات jpa

لنقم بتشغيل SGBD كما هو موضح أعلاه، ثم تطبيق الإدارة [1] عبر القائمة أدناه:

  • في [1]: يتم الاتصال بـ SQL Server كمسؤول Windows
  • في [2]: قم بتكوين خصائص الاتصال
  • في [3]: يتم السماح بوضع اتصال مختلط بالخادم: إما باستخدام تسجيل دخول Windows (مستخدم Windows)، أو باستخدام تسجيل دخول خادم SQL (حساب محدد داخل خادم SQL، مستقل عن أي حساب Windows).
  • في [3b]: يتم إنشاء مستخدم خادم SQL
  • في [4]: خيار [General]
  • في [5]: اسم المستخدم
  • في [6]: كلمة المرور (jpa هنا)
  • في [7]: الخيار [Server Roles]
  • في [8]: سيكون للمستخدم jpa الحق في إنشاء قواعد بيانات

نقوم بتأكيد هذا التكوين:

  • في [9]: تم إنشاء المستخدم jpa
  • في [10]: يتم قطع الاتصال
  • في [11]: يتم إعادة الاتصال
  • في [12]: يتم تسجيل الدخول كمستخدم jpa/jpa
  • في [13]: بمجرد تسجيل الدخول، يقوم المستخدم jpa بإنشاء قاعدة بيانات
  • في [14]: ستسمى قاعدة البيانات jpa
  • في [15]: وستكون مملوكة للمستخدم jpa
  • في [16]: تم إنشاء قاعدة البيانات jpa

5.8.4. إنشاء الجدول [ARTICLES] في قاعدة البيانات jpa

كما في الأمثلة السابقة، سنقوم بإنشاء الجدول [ARTICLES] استنادًا إلى البرنامج النصي الذي تم إنشاؤه في الفقرة 5.4.6.

  • إلى [1]: نفتح البرنامج النصي SQL
  • إلى [2]: نحدد البرنامج النصي SQL الذي تم إنشاؤه في الفقرة 5.4.6، الصفحة 240.
  • في [3]: يجب إعادة تسجيل الدخول (jpa/jpa)
  • في [4]: البرنامج النصي الذي سيتم تنفيذه
  • في [5]: حدد قاعدة البيانات التي سيتم تنفيذ البرنامج النصي فيها
  • في [6]: تنفيذه
  • في [7]: نتيجة التنفيذ: تم إنشاء الجدول [ARTICLES].
  • في [8]: نطلب عرض محتواه
  • في [9]: محتوى الجدول.

5.8.5. برنامج التشغيل JDBC من SQL Server Express

  • في [1]: بحث على Google باستخدام النص [Microsoft SQL Server 2005 JDBC Driver] يقودنا إلى صفحة تنزيل برنامج التشغيل JDBC. نختار أحدث إصدار
  • في [2]: الملف الذي تم تنزيله. نضغط عليه مرتين. يتم فك الضغط ويظهر مجلد نجد فيه برنامج التشغيل Jdbc [3]
  • في [4]: نضع أرشيف Jdbc [sqljdbc.jar] كما في الحالات السابقة (الفقرة 5.4.7) في المجلد <jdbc>

لاختبار برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُطلب من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: تم تعيين أرشيف برنامج التشغيل JDBC من SQL Server
  • في [2]: برنامج التشغيل JDBC من خادم SQL متاح
  • إلى [3]: تعريف الاتصال (user, password)=(jpa, jpa)
  • في [4]: الاتصال نشط
  • في [5]: قاعدة البيانات متصلة
  • في [6]: محتوى الجدول [ARTICLES]

5.9. SGBD HSQLDB

5.9.1. التثبيت

يتوفر SGBD HSQLDB على الرابط [http://sourceforge.net/projects/hsqldb]. وهو عبارة عن SGBD مكتوب بلغة Java، خفيف جدًا على الذاكرة، ويدير قواعد البيانات في الذاكرة وليس على القرص. وينتج عن ذلك سرعة كبيرة في تنفيذ الاستعلامات. وهذا هو أهم ميزاته. يمكن استعادة قواعد البيانات التي تم إنشاؤها في الذاكرة عند إيقاف تشغيل الخادم ثم إعادة تشغيله. في الواقع، يتم تخزين أوامر SQL الصادرة لإنشاء قواعد البيانات في ملف سجلات ليتم إعادة تشغيلها عند بدء تشغيل الخادم التالي. وبذلك نحصل على استمرارية قواعد البيانات بمرور الوقت.

هذه الطريقة لها حدودها، و HSQLDB ليس أداة SGBD مخصصة للاستخدام التجاري. تكمن أهم ميزاته في الاختبارات أو تطبيقات العرض التوضيحي. على سبيل المثال، فإن كون HSQLDB مكتوبًا بلغة Java يسمح بتضمينه في مهام Ant (Another Neat Tool)، وهي أداة Java لأتمتة المهام. وبالتالي، ستتمكن الاختبارات اليومية للرموز قيد التطوير، التي يتم أتمتتها بواسطة Ant، من دمج اختبارات قواعد البيانات التي يديرها SGBD HSQLDB. سيتم تشغيل الخادم وإيقافه وإدارته بواسطة مهام Java.

  • في [1]: موقع التنزيل
  • في [2]: اختيار أحدث إصدار
  • في [3]: فك ضغط ملف zip الذي تم تنزيله
  • في [4]: المجلد [hsqldb] الناتج عن فك الضغط
  • إلى [5]: المجلد [demo] الذي يحتوي على البرنامج النصي الذي يسمح بتشغيل الخادم [hsql] [6] و [7]، وهو الذي يسمح بتشغيل أداة بسيطة لإدارة الخادم.

5.9.2. تشغيل / إيقاف HSQLDB

لتشغيل الخادم HSQLDB، انقر نقرًا مزدوجًا على التطبيق [runManager.bat] [6] أعلاه:

  • في [1]: نرى أنه لإيقاف الخادم، يكفي الضغط على Ctrl-C في النافذة.

5.9.3. قاعدة البيانات [test]

توجد قاعدة البيانات المدارة افتراضيًا في المجلد [data]:

  • في [1]: عند بدء التشغيل، يقوم SGBD HSQL بتنفيذ البرنامج النصي المسمى [test.script]
1
2
3
4
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
  • السطر 1: يتم إنشاء مخطط [public]
  • السطر 2: يتم إنشاء مستخدم [sa] بكلمة مرور فارغة
  • السطر 3: يتم منح المستخدم [sa] حقوق الإدارة

في النهاية، تم إنشاء مستخدم يتمتع بحقوق الإدارة. وهذا هو المستخدم الذي سنستخدمه لاحقًا.

5.9.4. برنامج التشغيل JDBC لـ HSQL

يوجد برنامج تشغيل Jdbc الخاص بـ SGBD HSQL في المجلد [lib]:

  • في [1]: يحتوي الأرشيف [hsqldb.jar] على برنامج تشغيل Jdbc الخاص بـ SGBD HSQL
  • في [2]: نضع هذا الأرشيف مثل الأرشيفات السابقة (الفقرة 5.4.7) في المجلد <jdbc>

للتحقق من برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُطلب من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: [window / preferences / SQL Explorer / JDBC Drivers]
  • في [2]: يتم تكوين الخادم [HSQLDB]
  • في [3]: يتم تحديد الأرشيف [hsqldb.jar] الذي يحتوي على برنامج التشغيل Jdbc
  • في [4]: اسم فئة Java لبرنامج تشغيل Jdbc
  • في [5]: تم تكوين برنامج تشغيل Jdbc

بعد ذلك، يتم الاتصال بالخادم HSQL. ويجب تشغيله مسبقًا.

  • في [6]: يتم إنشاء اتصال جديد
  • في [7]: نسميه
  • في [8]: نريد الاتصال بالخادم HSQLDB
  • في [9]: عنوان URL لقاعدة البيانات التي نريد الاتصال بها. ستكون قاعدة البيانات [test] التي رأيناها سابقًا.
  • في [10]: يتم الاتصال كمستخدم [sa]. وقد رأينا أنه كان مسؤولاً عن SGBD.
  • في [11]: المستخدم [sa] ليس لديه كلمة مرور.

نقوم بالتحقق من صحة إعدادات الاتصال.

  • في [12]: يتم الاتصال
  • في [13]: يتم التعريف
  • في [14]: تم الاتصال
  • في [15]: المخطط [PUBLIC] لا يحتوي على جدول بعد
  • في [16]: سنقوم بإنشاء الجدول [ARTICLES] من البرنامج النصي [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.
  • في [17]: يتم تحديد البرنامج النصي
  • في [18]: البرنامج النصي المطلوب تنفيذه
  • في [19]: يتم تنفيذه بعد إزالة جميع التعليقات منه لأن HSQLB لا يقبل ذلك.
  • بمجرد الانتهاء من تنفيذ البرنامج النصي، يتم تحديث عرض قاعدة البيانات في [20]
  • في [21]: الجدول [ARTICLES] موجود بالفعل
  • في [22]: محتواها

دعونا نوقف الخادم HSQLDB ثم نعيد تشغيله. بعد ذلك، دعونا نفحص الملف [test.script]:

1
2
3
4
5
6
7
8
9
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE ARTICLES(ID INTEGER NOT NULL,NOM VARCHAR(20) NOT NULL,PRIX DOUBLE NOT NULL,STOCKACTUEL INTEGER NOT NULL,STOCKMINIMUM INTEGER NOT NULL,CONSTRAINT PK_ARTICLES PRIMARY KEY(ID),CONSTRAINT CHK_ID CHECK(ARTICLES.ID>0),CONSTRAINT CHK_PRIX CHECK(ARTICLES.PRIX>0),CONSTRAINT CHK_STOCKACTUEL CHECK(ARTICLES.STOCKACTUEL>0),CONSTRAINT CHK_STOCKMINIMUM CHECK(ARTICLES.STOCKMINIMUM>0),CONSTRAINT CHK_NOM CHECK(ARTICLES.NOM!=''),CONSTRAINT UNQ_NOM UNIQUE(NOM))
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
SET SCHEMA PUBLIC
INSERT INTO ARTICLES VALUES(1,'article1',100.0E0,10,1)
INSERT INTO ARTICLES VALUES(2,'article2',200.0E0,20,2)
INSERT INTO ARTICLES VALUES(3,'article3',300.0E0,30,3)

نرى أن SGBD قد حفظ الأوامر المختلفة SQL التي تم تنفيذها خلال الجلسة السابقة، وأنه يعيد تنفيذها عند بدء الجلسة الجديدة. كما نرى (السطر 2) أن الجدول [ARTICLES] يتم إنشاؤه في الذاكرة (MEMORY). في كل جلسة، يتم تخزين الأوامر SQL الصادرة في [test.log] ليتم نسخها في بداية الجلسة التالية إلى [test.script] وإعادة تشغيلها في بداية الجلسة.

5.10. Apache Derby لـ SGBD

5.10.1. التثبيت

يتوفر SGBD Apache Derby على الرابط [http://db.apache.org/derby/]. وهو عبارة عن SGBD مكتوب أيضًا بلغة Java وخفيف جدًا على الذاكرة. ويتميز بمزايا مشابهة لـ HSQLDB. ويمكن أيضًا تضمينه في تطبيقات Java، c.a.d. ليكون جزءًا لا يتجزأ من التطبيق ويعمل في نفس JVM.

  • في [1]: موقع التنزيل
  • في [2,3]: احصل على أحدث إصدار
  • في [3]: فك ضغط ملف zip الذي تم تنزيله
  • في [4]: المجلد [db-derby-*-bin] الناتج عن فك الضغط
  • إلى [5]: المجلد [bin] الذي يحتوي على البرنامج النصي الذي يسمح بتشغيل الخادم [db derby] [6] وفي [7]، البرنامج النصي الخاص بإيقافه.

5.10.2. تشغيل / إيقاف Apache Derby (Db Derby)

لتشغيل خادم Db Derby، انقر نقرًا مزدوجًا على التطبيق [startNetworkServer] [6] أعلاه:

  • في [1]: يتم تشغيل الخادم. سيتم إيقافه باستخدام التطبيق [stopNetworkServer] [7] أعلاه.

5.10.3. برنامج تشغيل Db Derby JDBC

يوجد برنامج تشغيل Jdbc لـ SGBD Db Derby في المجلد [lib] ضمن مجلد التثبيت:

  • في [1]: يحتوي الأرشيف [derbyclient.jar] على برنامج تشغيل Jdbc الخاص بـ SGBD Db Derby
  • إلى [2]: نضع هذا الأرشيف مثل الأرشيفات السابقة (الفقرة 5.4.7) في المجلد <jdbc>

لاختبار برنامج التشغيل JDBC، سنستخدم Eclipse والمكوّن الإضافي SQL Explorer. يُرجى من القارئ اتباع الخطوات الموضحة في الفقرة 5.4.7. نقدم بعض لقطات الشاشة المهمة:

  • في [1]: [window / preferences / SQL Explorer / JDBC Drivers]
  • في [2]: برنامج تشغيل Jdbc الخاص بـ Apache Derby غير موجود في القائمة. يتم إضافته.
  • في [3]: نسمي برنامج التشغيل الجديد
  • في [4]: نحدد شكل عناوين URL التي يديرها برنامج تشغيل Jdbc
  • في [5]: تم تحديد أرشيف .jar لمحرك Jdbc
  • في [5b]: اسم فئة Java لبرنامج التشغيل Jdbc
  • في [5c]: تم تكوين برنامج تشغيل Jdbc

بعد ذلك، يتم الاتصال بخادم Apache Derby. ويجب تشغيله مسبقًا.

  • في [6]: يتم إنشاء اتصال جديد
  • في [7]: نسميها
  • في [8]: نريد الاتصال بخادم Apache Derby
  • في [9]: عنوان URL لقاعدة البيانات التي نريد الاتصال بها. بعد البداية القياسية [jdbc:derby://localhost:1527]، سنضع مسار مجلد على القرص يحتوي على قاعدة بيانات Derby. تسمح الخيار [create=true] بإنشاء هذا المجلد إذا لم يكن موجودًا بعد.
  • في [10,11]: يتم الاتصال كمستخدم [jpa/jpa]. لم أتعمق في هذه المسألة، ولكن يبدو أنه يمكن إدخال أي اسم مستخدم وكلمة مرور. يتم هنا تحديد مالك قاعدة البيانات، إذا كان create=true.

نقوم بالتحقق من صحة إعدادات الاتصال.

  • في [12]: قم بتسجيل الدخول
  • في [13]: يتم التعريف (jpa/jpa)
  • في [14]: تم تسجيل الدخول
  • في [15]: المخطط [jpa] لم يظهر بعد.
  • في [16]: سنقوم بإنشاء الجدول [ARTICLES] من البرنامج النصي [schema-articles.sql] الذي تم إنشاؤه في الفقرة 5.4.6.
  • في [17]: نختار البرنامج النصي
  • في [18]: البرنامج النصي المطلوب تنفيذه
  • في [19]: يتم تنفيذه بعد إزالة جميع التعليقات منه لأن Apache Derby مثل HSQLB لا يقبلها.
  • بمجرد الانتهاء من تنفيذ البرنامج النصي، نقوم بتحديث عرض قاعدة البيانات في [20]
  • في [21]: المخطط [jpa] والجدول [ARTICLES] موجودان بالفعل
  • في [22]: محتوى الجدول [ARTICLES]
  • في [23]: محتوى المجلد [derby\jpa] الذي تم فيه إنشاء قاعدة البيانات.

5.11. إطار عمل Spring 2 لـ

إطار عمل Spring 2 متاح على الرابط [http://www.springframework.org/download]:

  • في [1]: يتم تنزيل أحدث إصدار
  • على الرابط [2]: قم بتنزيل الإصدار المسمى "مع التبعيات" لأنه يحتوي على أرشيفات .jar للأدوات الخارجية التي يدمجها Spring والتي نحتاجها دائمًا.
  • في [3]: قم بفك ضغط الأرشيف الذي تم تنزيله
  • في [4]: مجلد تثبيت Spring 2.1
  • في [5]: في المجلد <dist>، نجد أرشيفات Spring. يجمع الأرشيف [spring.jar] جميع فئات إطار عمل Spring. هذه الفئات متوفرة أيضًا حسب الوحدات النمطية في المجلد <modules> في [6]. إذا كنا نعرف الوحدات النمطية التي نحتاجها، فيمكننا العثور عليها هنا. وبذلك نتجنب تضمين أرشيفات لا تحتاجها التطبيق.
  • في [7]: يحتوي المجلد <lib> على أرشيفات الأدوات الخارجية التي يستخدمها Spring
  • في [8]: بعض ملفات المشروع [jakarta-commons]

عندما يستخدم البرنامج التعليمي أرشيفات Spring، يجب البحث عنها إما في المجلد <dist> أو في المجلد <lib> ضمن مجلد تثبيت Spring.

5.12. حاوية EJB3 من JBoss

الحاوية EJB3 من JBoss متاحة على الرابط [http://labs.jboss.com/jbossejb3/downloads/embeddableEJB3]:

  • في [1]: يتم تنزيل JBoss EJB3. يمكن ملاحظة تاريخ المنتج (سبتمبر 2006)، في حين أن التنزيل يتم في مايو 2007. قد يتساءل المرء عما إذا كان هذا المنتج لا يزال قيد التطوير.
  • في [2]: الملف الذي تم تنزيله
  • في [3]: الملف المضغوط الذي تم فك ضغطه
  • في [4]: تشكل أرشيفات [hibernate-all.jar, jboss-ejb3-all.jar, thirdparty-all.jar] الحاوية EJB3 لـ JBoss. يجب وضعها في مسار فئة التطبيق الذي يستخدم هذه الحاوية.