کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Hibernate جاوا

هایبرنیت ورژن 3.0 آخرین ورژن متن باز تکنولوژی پایدار در قلب EJB 3.0 می باشد که از آدرس www.Hibernate.com در دسترس برای دانلود می باشد. هسته هایبرنیت شامل 68549 خط کد جاوا به همراه 27948 خط کد واحدهای تست آن می باشد که تحت LGPL به صورت آزاد می باشد و توسعه آن بیش از یک سال طول کشیده شده است. هایبرنیت کلاس های جاوا را به جداول پایگاه داده نگاشت می کند. همچنین امکانات بازیابی اطلاعات و ایجاد پرس و جو برروی آن ها را فراهم می کند و به طور موثری زمان توسعه نرم افزار را کاهش می دهد. هایبرنیت بهترین راه حل برای برنامه های مرکز داده ای که فقط از روال های ذخیره شده برای پیاده سازی منطق تجاری نرم افزار استفاده می کنند نیست. هایبرنیت بیشتر برای کاربردهایی که دامنه آن ها در مد شی گرایی می باشد و برای پیاده سازی منطق تجاری در لایه میانی که بر پایه جاوا می باشد مفید است.هایبرنیت به برنامه اجازه می دهد که بین هر پایگاه داده ای سوئیچ کند. هایبرنیت می تواند در برنامه های Swing جاوا و همچنین برنامه های مبتنی بر Servlet و یا در برنامه های J2EE به کار گرفته شود.


آموزش نگاشت Mapping در Hibernate

آموزش مدل نگاشت Table Per Hierachy به وسیله فایل xml
درس سیزدهم : آموزش مدل نگاشت Table Per Hierachy به وسیله فای ...

به وسیله این استراتژی، می توانید کل سلسله مراتب (Hierachy) برنامه را در یک جدول تنها، نگاشت یا آدرس دهی (map) کنید. در این مدل، یک ستون اضافه در جدول وجود دارد که به آن ستون تفکیک کننده یا discriminator column می گویند و برای تشخیص و تمایز کلاس ها از یکدیگر به کار می رود.

2991 بازدید
ادامه
آموزش مدل نگاشت Table Per Hierarchy به وسیله Annotation
درس چهاردهم : آموزش مدل نگاشت Table Per Hierarchy به وسیله A ...

در درس قبلی، ما به وسیله یک جدول تنها در یک فایل xml، سلسله مراتب وراثت (inheritance hierarchy) را آدرس دهی و نگاشت (mapping) کردیم. در این درس، قصد داریم همین کار را مجددا به وسیله annotation انجام دهیم.

3330 بازدید
ادامه
آموزش مدل نگاشت Table Per Concrete Class با استفاده از فایل xml
درس پانزدهم : آموزش مدل نگاشت Table Per Concrete Class با اس ...

Cدر مدل نگاشت Table Per Concrete Class ، به ازای هر کلاس برنامه یک جدول در پایگاه داده ایجاد می شود که این جدول ها، هیچ نوع ارتباطی با هم ندارند. دو راه برای اتصال و ایجاد ارتباط بین جدول (Table) و مدل نگاشت Table Per Concrete Class وجود دارد که عبارتند از : استفاده از المنت Unio-Subclass. به وسیله ایجاد خود به خودی جدول برای هر کلاس.

2585 بازدید
ادامه
آموزش مدل نگاشت Table Per Concrete Class با استفاده از Annotation
درس شانزدهم : آموزش نگاشت Table Per Concrete Class با استفاد ...

همان طور که در درس قبل اشاره کردیم، در مدل نگاشت Table Per Concrete Class به ازای هر کلاس، یک جدول در پایگاه داده ایجاد می شود. بنابراین مقادیر خالی (Nnallblc) در جدول ها نخواهیم داشت. تنها عیب استفاده از این روش، ایجاد ستون های تکراری در جدول های کلاس های زیرمجموعه است. در این مدل ما بایستی از Annotation های @Inheritance در کلاس اصلی و از @AltributeOVerrides در کلاس های زیرمجموعه استفاده کنیم. @Inheritance مشخص می کند که ما داریم از مدل نگاشت Table Per Concrete Class در برنامه خود استفاده می کنیم. این Annotation فقط بایستی در کلاس Pareut تعیین شود. از طرف دیگر، @AltributeOVerrides تعیین می کند که خواص کلاس Pareut در کلاس های زیرمجموعه، بازنویسی خواهند شد. در ساختار جدول ها، ستون های جدول کلاس Pareut در جدول کلاس زیرمجموعه، اضافه خواهند شد.

3003 بازدید
ادامه
آموزش مدل نگاشت Table Per Subclass با استفاده از فایل xml
درس هفدهم : آموزش مدل نگاشت Table Per Subclass با استفاده از ...

در مدل نگاشت Table Per Subclass، جدول های آدرس دهی شده کلاس های زیرمجموعه از طریق کلیدهای اصلی (Primary key) و یا کلید خارجی (foreign key) به جدول کلاس اصلی Parent برنامه مرتبط هستند. از المنت <joined-subclass> برای اتصال و آدرس دهی کلاس فرزند (child class) به کلاس مادر (Parent class) توسط Primary key یا foreign key استفاده می شود. در مثال این درس، قصد داریم تا از خاصیت hb2dll.auto برای تولید خودکار جداول استفاده کنیم. بنابراین نیازی نیست نگران ایجاد جدول ها در پایگاه داده باشیم.

2508 بازدید
ادامه
آموزش مدل نگاشت Table Per Subclass با استفاده از Annotation
درس هجدهم : آموزش مدل نگاشت Table Per Subclass با استفاده از ...

همان طور که در درس های قبل، اشاره کردیم در استراتژی نگاشت Table Per Subclass، جدول های پایگاه داده به ازای هر کلاس اصلی (Persistent Class) ایجاد شده و از طریق کلیدهای اصلی (Primary key) و کلیدهای خارجی (Foreign key) به هم متصل هستند. بنابراین در این نوع رابطه، ستون های تکراری نخواهیم داشت.

2877 بازدید
ادامه
آموزش آدرس دهی مجموعه ها (Collection) در Hibernate
درس نوزدهم : آموزش آدرس دهی مجموعه ها (Collection) در Hibern ...

آموزش آدرس دهی مجموعه ها (Collection) در Hibernate شما می توانید عناصر مجموعه ای (Collection Elements) موجود در کلاس اصلی Persistent Class را در Hibernate آدرس دهی (mapping) کنید ...

2699 بازدید
ادامه
آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها
درس بیستم : آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها

اگر کلاس خام و اصلی برنامه (Persistant Class)، حاوی شی List object باشد، به سادگی می توانید شی List را به وسیله المنت <list> کلاس در فایل mapping و یا annotation آدرس دهی کنید. در این درس، ما از سناریوی 1 یا Forum استفاده می کنیم که در آن هر سوال می تواند دارای چندین جواب باشد.

2473 بازدید
ادامه
آموزش آدرس دهی ( mapping ) در Hibernate
درس دوازدهم : آموزش آدرس دهی ( mapping ) در Hibernate

در Hibernate ، می توانید سلسله مراتب کلاس های برنامه را در یک جدول پایگاه داده نگاشت یا آدرس دهی ( map ) کنید . سه نوع استراتژی برای این منظور در Hibernate وجود دارد : جدول برمبنای سلسله مراتب ( Table Per Hierarchy ) جدول برمبنای کلاس های واقعی ( Table Per Concerete Class ) جدول برمبنای کلاس های زیرمجموعه ( Table Per Subclass )

2707 بازدید
ادامه
آموزش آدرس دهی به روش One to Many در Hibernate با استفاده از مثال List
درس 21 : آموزش آدرس دهی One to Many در Hibernate با استفاده ...

اگر کلاس Persistant Class شما دارای اشیای لیست آدرس دهی (object list) باشد که حاوی رفرنس های entity هستند، بایستی از روش one-to-many برای آدرس دهی (map) المنت های لیست دار استفاده کنیم. در این مثال، ما از سناریو انجمن استفاده می کنیم که هر سوال می تواند چندین جواب داشته باشد. دیاگرام این سناریو در مثال زیر نشان داده شده است : در مواردی همانند مثال فوق، برای هر سوال ممکن است چندین جواب وجود داشته باشد و هر جواب هم اطلاعات مختص به خود را دارد. برای همین دلیل ما از List جهت کلاس persistant Class استفاده کردیم.

2867 بازدید
ادامه
آموزش Mapping Bag در آدرس دهی مجموعه های Hibernate
درس 22 : آموزش Mapping Bag در آدرس دهی مجموعه های Hibernate

اگر کلاس Persistent Class شما شامل اشیای لیست دار List object است، می توانید List را به وسیله المنت list یا bag در فایل آدرس دهی mapping file آدرس دهی یا map کنید. المنت bag کاملا مشابه المنت List می باشد با این تفاوت که نیاز به المنت index ندارد.

2643 بازدید
ادامه
آموزش آدرس دهی One to Many در Hibernate با List
درس 23 : آموزش آدرس دهی One to Many در Hibernate با List

اگر کلاس Persistent Class شما شامل اشیای لیست دار list object ای باشد که خود حاوی رفرنس های entity است، بایستی از روش آدرس دهی One to Many mapping برای آدرس دهی یا map کردن المنت های list استفاده کنیم. ما می توانیم این شی لیست (list object) را با استفاده از المنت list یا bag آدرس دهی کنیم.

2457 بازدید
ادامه
آموزش آدرس دهی متغیرهای Set در مجموعه های Hibernate
درس 24 : آموزش آدرس دهی متغیرهای Set در مجموعه های Hibernate

اگر کلاس Persistent Class شما شامل متغیرهای Set objects می باشد، می توانید از المنت Set در فایل آدرس دهی mapping file برای map متغیر Set استفاده کنید. المنت Set نیازی به index گذاری ندارد. متغیرهای Set و List کاملا شبیه هم هستند، با این تفاوت که متغیرهای Set فقط مقادیر یکتا و غیر تکراری (Unique) را در اعضای خود نگهداری می کند.

2446 بازدید
ادامه
آموزش آدرس دهی متغیرهای Set با روش One to Many در Hibernate
درس 25 : آموزش آدرس دهی متغیرهای Set با روش One to Many در H ...

اگر کلاس Persistent Class شما دارای اشیای Set ای است که محتوی رفرنس های entity می باشند، بایستی از روش one-to-many برای آدرس دهی یا map المنت Set استفاده کنیم. شما همچنین می توانید این list object را با المنت Set آدرس دهی کنید. ابتدا بیایید نگاهی به کد کلاس Persistent Class که دارای اشیای set objects می باشند، بیاندازیم. در این کلاس، هر question می تواند دارای چندین answer باشد که هر answer نیز دارای اطلاعات مختص به خود می باشد. برای همین است که ما از المنت Set برای جایگزینی مجموعه ای از جواب ها (answers) استفاده کرده ایم .

2357 بازدید
ادامه
آموزش آدرس دهی مجموعه های Hibernate با xml
درس 26 : آموزش آدرس دهی مجموعه های Hibernate با xml

Hibernate به شما امکان آدرس دهی المنت Map را به وسیله RD MS می دهد. همان طور که می دانید المنت های map و list، ایندکس گذاری شده یا index-basesd هستند. در این موارد، ستون index به عنوان کلید key و ستون element به عنوان مقدار یا Value عمل می کند.

2216 بازدید
ادامه
آموزش آدرس دهی Many to Many Mapping در Hibernate
درس 27 : آموزش آدرس دهی Many to Many Mapping در Hibernate

شما می توانید ارتباط many to many را با استفاده از المنت های set، bag، map و غیره انجام دهید. در این درس قصد داریم تا از المنت map برای آدرس دهی many to many استفاده کنیم. در این حالت، 3 جدول ایجاد خواهد شد که به بررسی آن ها خواهیم پرداخت.

2583 بازدید
ادامه
آموزش روابط دو طرفه Bidirectional Assocation در Hibernate
درس 28 : آموزش روابط دو طرفه Bidirectional Assocation در Hib ...

روابط دو طرفه یا Bidirectional Assocation به شما امکان خواندن و دریافت fetch اطلاعات اشیای وابسته یا object dependent را از دو طرف می دهد. در چنین مواردی، رفرنس هایی مربوط به هر یک از کلاس ها در کلاس دیگر وجود دارد. برای روشن شدن مسئله به بررسی ارتباط Employee و Address می پردازیم. در این حالت بایستی کلاس Employee Class یک رفرنس به کلاس Address و کلاس Address یک رفرنس به کلاس Employee داشته باشد.

2626 بازدید
ادامه
آموزش کاربرد Hibernate Lazy Collection
درس 29 : آموزش کاربرد Hibernate Lazy Collection

استراتژی Lazy Collection (خواندن حداقل اطلاعات لازم جهت بالا بردن کارایی سیستم) فقط بر حسب نیاز اشیای فرزند (Child objects) برنامه را لود می کند. این کار برای بالا بردن کارایی یا Perfomance سیستم استفاده می شود. از Hibernate 30 به بعد، قابلیت Lazy Collection به صورت پیش فرض فعال است. برای استفاده از امکان Lazy Collection در برنامه های Hibernate، بایستی مقدار خاصیت lazy=”true” را در Collection خود قرار دهید. همان طور که اشاره شد، این امکان به صورت پیش فرض در Hibernate 30 به بعد فعال است و اصولا نیاز به انجام کار فوق نیست. اما اگر مقدار خاصیت lazy را بر روی false قرار دهید، آنگاه برنامه کلید اشیای فرزند Child objects را در هنگام اجرا لود می کند که باعث کاهش شدید کارایی یا Perfomance سیستم مخصوصا در حجم زیاد داده ها می شود.

2603 بازدید
ادامه
آموزش آدرس دهی Component Mapping در Hibernate
درس 30 : آموزش آدرس دهی Component Mapping در Hibernate

در استراتژی Component Mapping ما هر شی وابسته یا dependent object را به عنوان یک Component آدرس دهی می کنیم. یک Component یک شی یا object است که به صورت مقدار یا Value نگهداری می شود تا refrence. این روش معمولا زمانی استفاده می شود که dependent object دارای کلید اصلی Primary key نیست. همچنین Component Mapping برای انجام عمل ترکیب یا Composition که دارای ارتباط (HAS-(A relation به کار رفته و به همین دلیل Component نامگذاری شده است.

2304 بازدید
ادامه
آموزش آدرس دهی Association Mapping با روش one-to-one در Hibernate
درس 31 : آموزش آدرس دهی Association Mapping با روش one-to-on ...

شما می توانید روش آدرس دهی one to one mapping را از دو راه انجام دهید : به وسیله المنت many-to-one. به وسیله المنت many-to-one. در این درس، قصد داریم روش اجرای آدرس دهی one to one mapping را به وسیله المنت many –to-one آموزش دهیم. در چنین موردی، یک کلید خارجی foreign key در جدول اصلی برنامه ایجاد می شود.

2522 بازدید
ادامه
آموزش آدرس دهی Association با one-to-one در Hibernate 2
درس 32 : آموزش آدرس دهی Association با one-to-one در Hiberna ...

همانطور که در درس قبل مطرح کردیم، دو راه برای آدرس دهی one to one mapping در Hibernate وجود دارد که عبارتند از : استفاده از المنت many-to-one. استفاده از المنت one-to-one. در این درس قصد داریم روش اجرای آدرس دهی one to one mapping را با استفاده از المنت one-to-one آموزش دهیم. در چنین موردی، هیچ کلید خارجی foreign key به جدول اصلی برنامه اضافه نمی شود.

2565 بازدید
ادامه