Skip to content

23. المرفقات

نقدم هنا كيفية تثبيت الأدوات المستخدمة في هذا المستند على أجهزة تعمل بنظام ويندوز 7 أو 8. تشير لقطات الشاشة عمومًا إلى الإصدارات 64 بت من SGBD والأدوات المثبتة. على القارئ تكييف الإجراءات وفقًا لبيئته الخاصة.

23.1. تثبيت JDK

يمكن العثور على أحدث إصدار من URL في [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (أكتوبر 2014)، وهو JDK. وسنطلق فيما يلي على مجلد تثبيت JDK اسم <jdk-install>.

 

23.2. تثبيت Maven

Maven هي أداة لإدارة تبعيات مشروع Java وأكثر من ذلك. وهي متوفرة (أكتوبر 2014) على الرابط URL [http://maven.apache.org/download.cgi].

 

قم بتنزيل الملف المضغوط وفك ضغطه. سنطلق على مجلد تثبيت Maven اسم <maven-install>.

  • في [1]، يقوم الملف [conf / settings.xml] بتكوين Maven؛

ويحتوي على الأسطر التالية:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
-->

قد تسبب القيمة الافتراضية في السطر 4 مشكلة لبعض البرامج التي تستخدم Maven، إذا كان ملف {user.home} الخاص بك، مثلي، يحتوي على مسافة في مساره (على سبيل المثال [C:\Users\Serge Tahé]). سنحدد (السطر 7) مجلدًا آخر لمستودع Maven المحلي:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>

يجب تجنب استخدام مسار يحتوي على مسافات في السطر 7.

23.3. تثبيت STS (Spring Tool Suite)

سنقوم بتثبيت SpringSource Tool Suite [http://www.springsource.com/developer/sts] (أكتوبر 2014)، وهو إصدار من Eclipse مزود مسبقًا بالعديد من المكونات الإضافية المرتبطة بإطار عمل Spring، بالإضافة إلى إعدادات Maven مثبتة مسبقًا.

  • انتقل إلى موقع مجموعة أدوات SpringSource (STS) [1]، لتنزيل الإصدار الحالي من STS [2A] [2B]،
  • الملف الذي تم تنزيله هو برنامج تثبيت يقوم بإنشاء شجرة الملفات [3A] و[3B]. في [4]، يتم تشغيل الملف القابل للتنفيذ،
  • في [5]، تظهر نافذة العمل الخاصة بـ IDE بعد إغلاق نافذة الترحيب. في [6]، يتم عرض نافذة خوادم التطبيقات،
  • في [7]، نرى نافذة الخوادم. تم تسجيل خادم واحد. وهو خادم VMware متوافق مع Tomcat.

يجب تحديد مجلد تثبيت Maven في STS:

  • في [1-2]، نقوم بتكوين STS؛
  • في [3-4]، نضيف تثبيتًا جديدًا لـ Maven؛
  • في [5]، نحدد مجلد تثبيت Maven؛
  • في [6]، ننهي عمل المعالج؛
  • في [7]، نجعل التثبيت الجديد لـ Maven هو التثبيت الافتراضي؛
  • في [8-9]، يتم التحقق من مستودع Maven المحلي، وهو المجلد الذي سيضع فيه التبعيات التي سيتم تنزيلها، وحيث سيضع STS العناصر التي سيتم إنشاؤها؛

كما يجب اختيار JDK (Java Development Kit) لتشغيل مشاريع Eclipse سواء مع أو بدون Maven [1-5].

باستخدام [4]، يمكن إضافة JDK (Java Development Kit) أو JRE (Java Runtime Environment). هذا الأخير قادر على تشغيل ملفات .class ولكنه لا يستطيع ترجمة ملفات .java لإنتاجها. أما JDK فيستطيع القيام بالأمرين معًا. سنختار JDK لأن بعض عمليات Maven تتطلب وجود JDK.

لإنشاء مشروع Eclipse، نتبع الخطوات التالية:

  • في [3]، قم بتسمية المشروع؛
  • في [4]، حدد مجلدًا موجودًا وفارغًا؛
  • في [5]، المشروع الذي تم إنشاؤه؛
  • في [5-8]، قم بإنشاء حزمة. الحزمة هي مجلد يحتوي على كود Java. يمكن أن تحمل فئتان نفس الاسم إذا كانتا تنتميان إلى حزمتين مختلفتين. لا يمكن أن توجد حزمتان تحملان نفس الاسم في مشروع واحد. وبالتالي، لا يمكن استخدام اسم حزمة موجود بالفعل في إحدى تبعيات المشروع. ستستخدم الشركة كاسم للحزمة اسمًا يحدد الشركة والمشروع وفروعه المختلفة؛
  • في [9]، قم بتسمية الحزمة؛
  • في [10]، الحزمة التي تم إنشاؤها؛
  • في [11-13]، نقوم بإنشاء فئة داخل الحزمة التي تم إنشاؤها؛
  • في [14]، قم بتسمية الفئة (يجب أن تتوافق مع المعيار CamelCase — بحيث تبدأ كل كلمة في الاسم بحرف كبير يتبعه أحرف صغيرة)؛
  • في [15]، تحقق من الحزمة؛
  • في [16]، حدد المربع. يطلب هذا المربع إنشاء الطريقة الثابتة [main]. هذه الطريقة تجعل الفئة قابلة للتنفيذ، أي الفئة الأولى التي يتم تنفيذها في المشروع؛
  • في [17]، الفئة التي تم إنشاؤها بهذه الطريقة؛

اكتب في الطريقة [main] الكود التالي الذي يعرض نصًا على وحدة التحكم:


package st.istia;

public class Test01 {

    public static void main(String[] args) {
        System.out.println("test01");
    }

}
  • في [18-20]، قم بتنفيذ الفئة. سيتم عندئذٍ تنفيذ أسلوبها [main
  • في [21-22]، نتيجة التطبيق؛

إذا لم تكن طريقة العرض [Console] موجودة، فاتبع الخطوات التالية [1-4]:

قد تظهر أخطاء عند استيراد مشروع Eclipse. قد يكون ذلك بسبب تكوين غير صحيح للمشروع. لتصحيح الخطأ (إن وجد)، اتبع الخطوات التالية:

  • في [1]، قم بتعديل [Build Path] الخاص بالمشروع؛
  • إلى [2]، فإن المشروع مُهيأ لاستخدام JVM 1.5؛
  • إلى [3]، احذف هذه التبعية؛
  • في [4]، أضف تبعية جديدة؛
  • في [5]، تُضاف JVM؛
  • في [6]، اختر JVM الخاص بالبند؛

بعد ذلك، نؤكد كل شيء ثم ننتقل إلى الخاصية [Java compiler] للمشروع [7]:

  • في [8]، نطلب من المُجمِّع قبول جميع خصائص لغة Java حتى الإصدار 1.7 (أو 1.8) ضمناً؛
  • في [9]، يتم التحقق من صحة المشروع؛
  • في [10]، يجب ألا يحتوي المشروع الذي تمت إعادة تهيئته بهذه الطريقة على أي أخطاء؛

بالإضافة إلى ذلك، يمكن للمشروع المستورد استخدام ترميز الأحرف UTF-8. اتبع الخطوات التالية لتعيين هذا الترميز في المشروع المستورد [1-4]:

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

23.4. تثبيت إصدار Community Edition من SGBD MySQL5

سيتم العثور على إصدار SGBD MySQL5 Community Edition (يونيو 2015) في URL [https://dev.mysql.com/downloads/mysql/]:

 

تتم عملية التثبيت على النحو التالي:

  • في [8]، تم استخدام كلمة المرور [root]. في هذا المستند، بيانات اعتماد مسؤول SGBD وMySQL هي [root / root

بمجرد تثبيت MySQL 5، اعرض صفحة إدارة خدمات Windows:

  • [1]: أيقونة Windows في أسفل اليسار؛
  • في [8]، اضبط خدمة [MySQL56] على «التشغيل اليدوي» حتى لا تستهلك الموارد دون داعٍ. يمكنك تشغيلها من صفحة الخدمات كلما احتجت إليها؛

23.5. تثبيت EMS و MyManager

يقدم موقع [http://www.sqlmanager.net/en/] برامج عميلة مجانية لإدارة ستة أنواع من SGBD:

 

الميزة هي أن جميعها تتميز بنفس الواجهة لإدارة SGBD. وهذا مثالي لهذا المستند حيث نريد إدارة الأنواع الستة من SGBD. لا حاجة لتعلم استخدام عميل جديد عند تغيير نوع SGBD. يمكن العثور عليها جميعًا في URL و[http://www.sqlmanager.net/download/]. سنقوم بتنزيل الإصدارات المجانية المعروفة باسم lite:

 
 

أما إصدارات URL المتاحة للتنزيل حاليًا (مايو 2015) فهي التالية:

MySQL5
IBM DB2
Firebird / Interbase
Oracle
Microsoft SQL Server
PostgreSQL

عند تثبيت، على سبيل المثال، العميل MyManager من MySQL5، نحصل على الشجرة التالية:

  • الملف القابل للتنفيذ موجود في [2]؛
  • توضح الخطوات الموجودة في [3-8] كيفية ربط [MyManager] بإحدى قواعد البيانات الموجودة في MySQL؛
  • في [4]، كلمة المرور هي [root

23.6. تثبيت SGBD Oracle Database Express Edition 11g الإصدار 2

يتوفر SGBD Oracle Database Express Edition 11g الإصدار 2 في URL (يونيو 2015): [http://www.oracle.com/technetwork/database/database-techno logies/express-edition/downloads/index.html]:

 

تتم عملية التثبيت على النحو التالي:

  • في [6]، يتم إدخال كلمة المرور [system]. في هذا المستند، بيانات اعتماد مسؤول Oracle هي [system / system

يقوم برنامج التثبيت بتثبيت Oracle كخدمة في نظام Windows. يتم تثبيت العديد من الخدمات التي يتم تشغيلها تلقائيًا بشكل افتراضي. أول ما يجب فعله هو تحويلها إلى الوضع اليدوي:

يجب تشغيل خدمتين:

  • [OracleXETNSListener] التي تستمع على المنفذ 1521 إلى الطلبات الموجهة إلى SGBD؛
  • [OracleServiceXE]، وهو في الواقع SGBD؛

لإدارة Oracle، سنستخدم العميل [OraManager] (الفقرة 23.5). ولكي يصبح قابلاً للاستخدام، يجب أولاً تثبيت حزمة [Oracle Database Express Edition 11g Release 2 Client] المتوفرة في URL (يونيو 2015): [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html]. يجب تنزيل الإصدار 32 بت لأن [OraManager] هو عميل 32 بت:

 

يتم تثبيت هذه الحزمة بالطريقة التالية:

  • في [3]، حدد المجلد <oracleXE-install>\app\oracle\product\11.2.0\client_1 حيث <oracleXE-install> هو المجلد الذي قمت بتثبيت Oracle Express فيه؛

الآن، لنقم بتوصيل عميل [OraManager] بـ SGBD Oracle:

  • في [2]، يمكن اختيار اسم المجموعة بحرية؛
  • في [4]، يجب إدخال XE؛
  • في [5]، الاسم المستعار حر؛
  • في [6]، المعرفات هي [system / system

23.7. تثبيت SGBD PostgreSQL 9.4

يتوفر SGBD PostgreSQL 9.4 في URL (يونيو 2015): [http://www.enterprisedb.com/products-services-training/pgdownload#windows]:

 

تتم عملية التثبيت على النحو التالي:

  • في [4]، كلمة المرور هي postgres. في هذا المستند، بيانات اعتماد مسؤول SGBD وPostgreSQL هي [postgres / postgres

يقوم برنامج التثبيت بتثبيت PostgreSQL كخدمة Windows مع التشغيل التلقائي. أول ما يجب فعله هو تحويلها إلى الوضع اليدوي:

الآن، لنقم بتوصيل العميل [PgManager] (انظر الفقرة 23.5) بـ SGBD و PostgreSQL:

  • في [2]، المعرفات هي [postgres / postgres
  • في [3]، يتم الاتصال بقاعدة البيانات [postgres

23.8. تثبيت SGBD DB2 Express

يتوفر SGBD DB2 Express في URL (يونيو 2015): [http://www-01.ibm.com/software/data/db2/express-c/download.html]:

 

تتم عملية التثبيت على النحو التالي:

  • في [9]، كلمة المرور هي [db2admin]. في هذا المستند، بيانات اعتماد مسؤول SGBD هي [db2admin / db2admin
 

ملاحظة: قد تميل إلى تخطي هذه الخطوة. لكن لا يجب عليك ذلك. فهي ستنشئ المجلد الذي سيتم فيه تخزين قواعد البيانات DB2 التي سنقوم بإنشائها.

  • تم إنشاء مجلد [d:\DB2] و [1]؛
  • تم إنشاء قاعدة البيانات [SAMPLE] في المجلد [d:\db2\node0000

يقوم برنامج التثبيت بتثبيت DB2 كخدمة ويندوز مع التشغيل التلقائي. أول ما يجب فعله هو تحويلها إلى الوضع اليدوي:

قم بذلك لجميع الخدمات [DB2*] المذكورة أعلاه. لا يلزم تشغيل سوى الخدمة [DB2 - DB2COPY1] لأغراض هذا المستند.

الآن، لنقم بتوصيل العميل [Db2Manager] (انظر الفقرة 23.5) بـ SGBD و DB2:

  • في [1]، استخدم المعرفات [db2admin / db2admin

23.9. تثبيت SGBD و SQL Server 2014 Express

يتوفر SGBD SQL Server 2014 Express في URL (يونيو 2015): [http://www.microsoft.com/fr-fr/server-cloud/products/sql-server/]:

 

تتم عملية التثبيت على النحو التالي:

 
 
 
 
 
  • في [1]، أدخل كلمة مرور أيًا كانت. سنقوم بتغييرها لاحقًا؛
 
 

بعد ذلك، نقوم بتشغيل خدمة خادم SQL:

وبعد ذلك، نقوم بتشغيل عميل [Microsoft SQL Server Management Studio] الذي تم تثبيته في نفس الوقت مع SGBD (انظر قائمة «ابدأ»):

يمكن استخدام هذا العميل لإدارة خادم SQL. ولكن حرصًا على التناسق مع عملاء SGBD الآخرين، سنستخدم العميل [MsManager] (انظر الفقرة 23.5).

  • في [1]، قم بتدوين اسم SGBD؛
  • في [2]، تم تعيين كلمة المرور msde. في هذا المستند، بيانات اعتماد مسؤول SGBD هي [sa / msde

بعد ذلك، يتم تشغيل الأداة [Gestionaire de configuration SQL Server] التي تم تثبيتها في نفس الوقت مع SGBD (انظر قائمة «ابدأ»):

  • بشكل افتراضي، في [2]، لا يتم تفعيل الاتصال TCP/IP. بالنسبة لهذا المستند، يجب تفعيله [3]؛
  • في [4]، ولأغراض هذا المستند أيضًا، يجب الإشارة إلى أن SGBD ينتظر طلبات العملاء على المنفذ 1433. يجب أن تكون قيمة [Ports TCP dynamiques] فارغة؛

وبعد ذلك، يتم تشغيل العميل [MsManager] (انظر الفقرة 23.5):

  • في [3]، أدخل الاسم الذي تم تدوينه في [1]؛
  • في [4]، المعرفات هي [sa / msde
 

23.10. تثبيت SGBD Firebird

يتوفر Firebird 2.5.4 SGBD في URL (يونيو 2015): [http://www.firebirdsql.org/en/firebird-2-5-4/]:

 

تتم عملية التثبيت على النحو التالي:

 

بعد ذلك، دعونا نتحقق من طريقة تشغيل خدمة Windows التي تم إنشاؤها:

لنقم الآن بتوصيل العميل [IBManager] (انظر الفقرة 23.5) ببرنامج Firebird المثبت SGBD:

  • في [1]، كلمة المرور هي masterkey؛

23.11. تثبيت المكون الإضافي لمتصفح Chrome [Advanced Rest Client]

في هذا المستند، نستخدم متصفح «كروم» من «جوجل» (http://www.google.fr/intl/fr/chrome/browser/). سنقوم بإضافة الملحق [Advanced Rest Client] إليه. ويمكن القيام بذلك على النحو التالي:

  • الذهاب إلى موقع [Google Web store] (https://chrome.google.com/webstore) باستخدام متصفح Chrome؛
  • ابحث عن تطبيق [Advanced Rest Client]:
 
  • سيصبح التطبيق متاحًا للتنزيل:
  • للحصول عليه، سيتعين عليك إنشاء حساب Google. ثم يطلب [Google Web Store] تأكيدًا [1]:
  • في [2]، يصبح الملحق المضاف متاحًا في الخيار [Applications] [3]. يظهر هذا الخيار في كل علامة تبويب جديدة تقوم بإنشائها (CTRL-T) في المتصفح.

23.12. إدارة jSON في Java

بطريقة شفافة تمامًا للمطور، يستخدم إطار العمل [Spring MVC] مكتبة jSON [Jackson]. لتوضيح ماهية jSON (JavaScript Object Notation)، نقدم هنا برنامجًا يقوم بتسلسل الكائنات في jSON ويقوم بالعكس عن طريق فك تسلسل سلاسل jSON الناتجة لإعادة إنشاء الكائنات الأولية.

تسمح مكتبة «Jackson» بإنشاء:

  • سلسلة jSON لكائن: new ObjectMapper().writeValueAsString(object)؛
  • كائنًا من سلسلة jSON: new ObjectMapper().readValue(jsonString, Object.class).

قد تؤدي كلتا الطريقتين إلى إثارة استثناء. فيما يلي مثال على ذلك.

  

المشروع أعلاه هو مشروع Maven يحتوي على الملف [pom.xml] التالي؛


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>istia.st.pam</groupId>
  <artifactId>json</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.3.3</version>
    </dependency>
  </dependencies>
</project>
  • الأسطر 12-16: التبعية التي تستدعي مكتبة «Jackson»؛

الفئة [Personne] هي كما يلي:


package istia.st.json;

public class Personne {
    // البيانات
    private String nom;
    private String prenom;
    private int age;

    // الشركات المصنعة
    public Personne() {

    }

    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }

    // التوقيع
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // أدوات الاسترجاع والتعيين
...
}

الفئة [Main] هي كما يلي:


package istia.st.json;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Main {
  // أداة التسلسل/إلغاء التسلسل
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // إنشاء شخص
    Personne paul = new Personne("Denis", "Paul", 40);
    // العرض jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // إنشاء مثيل لـ «Personne» من ملف JSON
    Personne p = mapper.readValue(json, Personne.class);
    // عرض كيان «Personne»
    System.out.println("Personne=" + p);
    // مصفوفة
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // عرض JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // قاموس
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // عرض JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

يؤدي تنفيذ هذه الفئة إلى عرض الشاشة التالية:

1
2
3
4
Json={"nom":"Denis","prenom":"Paul","age":40}
Personne=Personne[Denis, Paul, 40]
Json personnes=[{"nom":"Denis","prenom":"Paul","age":40},{"nom":"Radot","prenom":"Virginie","age":20}]
Json hpersonnes={"2":{"nom":"Radot","prenom":"Virginie","age":20},"1":{"nom":"Denis","prenom":"Paul","age":40}}

من هذا المثال، نستخلص ما يلي:

  • الكائن [ObjectMapper] الضروري للتحويلات jSON / الكائن: السطر 11؛
  • التحويل [Personne] --> jSON: السطر 17؛
  • التحويل jSON --> [Personne]: السطر 20؛
  • الاستثناء [IOException] الذي أطلقته الطريقتان: السطر 13.