5-Hibernate_ Persistent Class & Mapping file


اي قاعدة بيانات تتكون من مجموعه من الجداول لحفظ البيانات مثال اذا كان هناك قاعدة بيانات لمستشفي سيكون هناك جدول خاص بالمرضي ليحتوي علي بيانات هؤلاء المرضي مثل الاسم والعمر والعنوان والطبيب المعالج وكل ما يتعلق بالمريض اذا فكل row جديد في هذا الجدول يمثل مريض جديد .

عندما يتعامل ال Hibernate  مع هذا الجدول فانه يمثله بملفين مرتبطين ببعضهما في التطبيق يحملون نفس اسم هذا الجدول
1- ملف Java class  وهو ال Persistent
2- ملف XML  وهو Mapping file

بالتالي كل جدول في ال DB  سيكون له ملفين باسمه في التطبيق وكل object من ال class  يمثل row جديد في الجدول
اي انه يمثل مريض جديد او موظف جديد اي انه ياخذ القيم المتواجدة في هذا ال Object وطبقا لملف ال mapping  ينشئ row جديد داخل هذا الجدول بتلك البيانات
وكل متغير بيتمثل في 3 اماكن  في ال SQL  وفي ال Java  وفي  Mapping

1- Persistent Class
   هو class عادي لكنه يجب ان يحتوي علي مجموعة من الخصائص ويسمي ايضا POJO (plain old java object)
  
      - يجب ان يحتوي علي default constructor
      -يجب ان يحتوي علي ID خاص به مثل ال primary key  في ال DB
      -يجب ان تكون جميع المتغيرات بداخله private وان يكون لكل متغير ال Setxxx & Getxxx الخاص به لانه عن طريقهما
              يتم التعامل مع المتغير
      - يجب ان يكون class مستقل لا يرث او يورث او implement  لاي class اخر

وبناءا علي هذه الشروط لو عندي جدول اسمه employee  في ال DB  هيكون ال  Persistent Class الخاص به بالشكل ده



2-Mapping file

 وهو عبارة عن ملف XML  يحمل نفس اسم ال class المقابل له بهذا الشكل classname.hbm.xml  به مجموعة من ال Tags  وهو بمثابة المترجم الذي يقوم بتطابق المتغيرات  من Java الي SQL ويكون بهذا الشكل



1  - <class>  ويحتوي علي 2 attributes  الاول name  وهو الاسم المقابل لل class  الخاص به هذا الملف  والثاني table  وهو الخاص باسم الجدول في ال DB
2 -<id>  وهو المقابل للمتغير ID  في الclass  وال primary key في الجدول وبه name  وهو اسمه في ال class
وال column  المقابل له في ال الجدول وال type   الخاص به
3-ولكي يكون ال auto  اي انه يزيد مع كل object   نستخدم العنصر <generator> ويحتوي علي attribute تسمي class  وعند اعطائها قيمة native انا كده بديله الاختيار الخاص بال auto ان يكون (identity, sequence , hilo)

4 و كل متغير في ال class  يمثل ب تاج <property> وبه name  وهو اسمه في ال class
وال column  المقابل له في ال الجدول وال type   الخاص به

ويوجد هناك tags اخري سنتحدث عنها حين استخدامها

مثلا ال firstName  ستكون في ال java من نوع String  وفي ال SQL  من نوع  VARCHAR
كده اللي بيحصل مع ال Hibernate  عند وضع بيانات جديدة او تحديثها انه بيعمل object من ال persistent class
(java type)
ويحفظ هذه البيانات في المتغيرات ثم يذهب لملف الMapping ( Hibernate mapping types) 
  ليقارن المتغيرات ويري ما الذي يطابقها في جدول  (SQL data types)  DB

وهذه الجداول توضح انواع البيانات والمقابل لها



Previous
Next Post »