هایبرنیت (جاوا): تفاوت میان نسخه‌ها

تمیزکاری، + ویرایش با ماژول ابرابزار با استفاده از AWB
جز (ربات ردهٔ همسنگ (۲۶) +نشانی+املا+مرتب+تمیز (۱۲.۵ core): + رده:نرم‌افزارهای رد هت)
(تمیزکاری، + ویرایش با ماژول ابرابزار با استفاده از AWB)
'''هایبرنیت''' {{انگلیسی|Hibernate}} یک کتابخانه [[نگاشت شی-رابطه ای]] (object-relational mapping) برای زبان جاوا است که [[چارچوب نرم‌افزار|چارچوبی]] را برای نگاشت یک شی به یک [[پایگاه داده]] رابطه ای فراهم می آوردمی‌آورد.
 
هایبرنیت [[نرم‌افزار آزاد|نرم‌افزاری آزاد]] است که تحت مجوز GNU Lesser General Public توزیع می شودمی‌شود.
 
کاربرد اصلی هایبرنیت نگاشت یک کلاس [[جاوا (زبان برنامه‌نویسی)|جاوا]] به یک جدول در پایگاه داده است. هایبرنیت همچنین ابزاری را برای بازیابی داده‌ها فراهم می آوردمی‌آورد. هایبرنیت کمک می‌کند یک برنامه نویسبرنامه‌نویس بدون استفاده مستقیم از دستورات مربوط به پایگاه داده با آن رابطه برقرار و شی‌ها را بازیابی، ذخیره و یا به روزرسانی کند.
 
هایبرنیت به هیچ وجه جایگزین [[رابط پایگاه داده جاوا]] (JDBC) نمی‌شود بلکه یک لایه بالاتر از و مبتنی بر ان است در واقع هایبرنیت رابطی است که به برنامه نویسان کمک می کند،می‌کند، بدون درگیر شدن با جزئیات یک پایگاه داده، تمام اعمال مربوط به ذخیره و بازیابی اشیا را مستقل از نوع پایگاه داده انجام دهند.
 
هایبرنیت به هیچ وجه جایگزین [[رابط پایگاه داده جاوا]] (JDBC) نمی‌شود بلکه یک لایه بالاتر از و مبتنی بر ان است در واقع هایبرنیت رابطی است که به برنامه نویسان کمک می کند، بدون درگیر شدن با جزئیات یک پایگاه داده، تمام اعمال مربوط به ذخیره و بازیابی اشیا را مستقل از نوع پایگاه داده انجام دهند.
== پایستاری ==
هایبرنیت ابزار ذخیره اشیا جاوا را به طور شفاف فراهم آورده است. روابط بین اشیا از هر نوعی از جمله یک به یک و چند به چند هم توسط هایبرنیت پشتیبانی می شودمی‌شود. هایبرنیت قابلیت ذخیره و بازیابی مجموعه‌ها و گروههایگروه‌های داده در جاوا که معمولاً در Set و یا List ذخیره می شود،می‌شود، را نیز دارد. هایبرنیت قابلیت [[بارگیری دیرهنگام (نرم‌افزار)|بارگیری دیرهنگام]] مجموعه‌های مرتبط با یک شی خاص را دارد. این، رفتار پیش فرض در هایبرنیت ۳ است.
 
== پیکره بندی و نگاشت ==
نگاشت کلاس‌های جاوا به جدولهای پایگاه داده به کمک یک یا چند فایل پیکره بندی با فرمت XML و یا از طریق [[حاشیه نویسی جاوا]] انجام می شودمی‌شود. این فایلها مشخص می‌کند هر عضو یک کلاس چگونه در جدول مربوط ذخیره شود.
 
علاوه بر این فایل ها،فایل‌ها، برای پیکره بندی خود هایبرنیت نیاز به یک فایل پیکره بندی اصلی است. برخی از متغیرهایی که می توانمی‌توان در این فایل پیکره بندی (با نام پیش فرض hibernate.cfg.xml) مشخص کرد عبارتند از :
* hibernate.connection.driver_class- درایور مختص پایگاه داده که معمولاً با پسوند jar وجود دارد.
* hibernate.connection.url- آدرس سرور پایگاه داده
 
امکان ترکیب همه اطلاعات مربوط به نگاشت کلاس‌ها و اطلاعات پیکره بندی هایبرنیت در یک فایل نیز وجود دارد.
 
== کلاس‌ها و رابط‌های اصلی ==
* رابط Session : اصلی‌ترین رابط برای ذخیره، بازیابی و یا به روز رسانی یک شی. برای انجام تمام اعمال هایبرنیت نیاز به یک شی از این نوع داریم.
* رابط SessionFactory : یک برنامه مبتنی بر هایبرنیت برای تولید یک Session از SessionFactory استفاده می کندمی‌کند. به طور معمول برای کار با یک پایگاه داده تنها نیاز به یک SessionFactory است که از ان برای تولید هر تعداد Session استفاده می شودمی‌شود. از فایل پیکره بندی و یا حاشیه نویسی جاوا برای تولید یک SessionFactory از استفاده می کنیممی‌کنیم. در کد زیر از فایل پیکره بندی hibernate.cfg.xml موجود در پوشه ریشه پروژه برای تولید یک SessionFactory استفاده می کنیممی‌کنیم:
<source lang=java5>
SessionFactory factory = new Configuration().configure().buildSessionFactory();
 
== زبان پرس جوی هایبرنیت (HQL) ==
هایبرنیت قابلیت اجرای دستورات Sql را داراست با این حال برای راحتی بیشتر یک زبان شبیه Sql را با نام HQL پشتیبانی میکندمی‌کند. برای مثال دستور <code>from Product</code> تمام اشیا موجود در جدول مرتبط با کلاس <code>Product</code> در برنامه جاوا را بر می گرداندبرمی‌گرداند. معادل Sql این دستور <code>Select * from product_table</code> است. برای اجرای این دستور در یک برنامه در محیط جاوا استانداد کد زیر اجرا می شودمی‌شود:
<source lang=java5>
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
 
== یکپارچگی ==
هایبرنیت را هم در [[جاوا نسخه استاندارد|برنامه‌های استاندارد جاوا]] (Java SE) و هم در [[جاوا نسخه سازمانی|برنامه‌های سازمانی جاوا]] (Java EE) می توانمی‌توان استفاده کرد. همچنین می توانمی‌توان هایبرنیت را با برنامه‌های دیگر ترکیب کرد مثلاً شرکت [[آدوبی]] در نسخه ۹ برنامه ColdFusion خود از هایبرنیت استفاده کرده است.
 
== تاریخچه ==
گوین کینگ راهبری گروه نرم‌افزاری توسعه دهنده هایبرنیت را به عهده داشت. بعدها شرکت JBoss (که الان جزئی از شرکت [[ردهت]] است) تیم را خرید. در سال ۲۰۱۰ آخرین نسخه هایبرنیت شماره ۳ است. این نسخه شامل ویژگی‌های جدیدی مانند فیلترهای سلیقه ای و پشتیبانی از حاشیه نویسی جاوا ۵ است. در حال حاضر هایبرنیت پیادهپیاده‌سازی سازی تاییدتأیید شده نسخه یکم Java persistence API است که با استاندارد JSR ۲۲۰220 JPA سازگاری کامل دارد.
 
== مثال ==
=== نمونه فایل پیکره بندی هایبرنیت ===
<property name="hibernate.dialect" >org.hibernate.dialect.HSQLDialect</property>
<property name= "current_session_context_class">thread</property>
 
<property name="hbm2ddl.auto">create</property>
 
<mapping resource="mapProduct.xml"/>
</session-factory>
 
</hibernate-configuration>
</source>
 
=== نمونه کلاس جاوا ===
<source lang=java5>
<generator class="assigned" ></generator>
</id>
 
<property name="productName" column="product_name" type="string" />
</class>
 
</hibernate-mapping>
</source>
 
=== نمونه کد استفاده کننده ===
<source lang=java5>
== پیوند به خارج ==
* [http://www.hibernate.org/ وب‌گاه هایبرنیت]
 
== منابع ==
{{پانویس}}
* Hibernate in Action،Action, by Gaving King and Christian Bauer،Bauer, Printed by Manning،Manning, ISBN 1-932394-15-X
* [//[:en.wikipedia.org/wiki/Hibernate_:Hibernate (Java)/ |ویکی‌پدیای انگلیسی]]
 
[[رده:بستر جاوای سازمانی]]
۱۶٬۲۹۶

ویرایش