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

درس 35 : آموزش زبان HCQL در Hibernate

آموزش زبان HCQL در Hibernate :

زبان HCQL که مخفف عبارت Hibernate Criteria Query Language است، برای استخراج و دریافت رکوردها از یک رابطه یا جدول بر مبنای یک عبارت جستجو یا الگو خاص (Criteria) به کار می رود. رابط کاربری Criteria یا Criteria Interface متدهایی را فراهم می کند تا به وسیله آن ها معیار مورد نظر جستجو را به Query خود اعمال کنیم. برای مثال اطلاعات رکوردهایی را که میزان حقوق (فیلد Salary آن ها بیسشتر از 50000 است را بیابد و ...).

مزایای استفاده از HQL :

زبان HCQL متدهایی را در اختیار ما قرار می دهد تا Criteria را به Query خود اضافه کنیم، بنابراین به کار بردن آن برای برنامه نویسان جاوا بسیار راحت است.

رابط کاربری Criteria Interface :

رابط کاربری Criteria Interface متدهای زیادی برای تعیین Criteria فراهم کرده است. شی یا object مربوط به Criteria را می توان با استفاده از متد CreateCriteria() ایجاد نمود.
ساختار دستوری برای استفاده از متد createCriteria رابط کاربری Session Interface به صورت زیر است :

public Criteria createCriteria(Class c)     

متدهای پرکاربرد مربوط به رابط کاربری Criteria Interface را به صورت زیر معرفی کرده ایم :

  • متد public Criteria add (Criteria c) : برای اضافه کردن محدودیت های مورد نظر به Criteria استفاده می شود.
  • متد public Criteria addOrder (Order o) : از این متد برای تعیین ترتیب یا order در Criteria استفاده می شود.
  • متد public Criteria setFirstResult (int first Result) : این متد اولین رکوردی که بایستی از جدول یا رابطه پایگاه داده استخراج شود را تعیین می کند.
  • متد public Criteria setMaxResult (int total Result) : این متد تعداد کل رکوردهایی که بایستی استخراج شوند را تعیین می کند.
  • متد public List list() : این متد یکlist حاوی objectهای برنامه را بر می گرداند.
  • متد public Criteria setProjection (Projection projection) : این متد projection را در کد تعیین می کند.

آموزش کلاس های محدودکننده Restriction Class در HQL

کلاس های محدودکننده یا Restriction Class ها، متدهایی را فراهم می کنند که از آن ها می توان برای ایجاد معیار (Criterion) استفاده کرد. متدهای پرکاربردی که می توان آن ها را به عنوان Restriction به کار برد، عبارتند از :

  • متد public static SimpleExpression lt (String propertyName,Object value) : این متد مقدار کمتر از محدودیت less than Contrasnt را به property مورد نظر می دهد.
  • متد public static SimpleExpression le ( String propertyName,Object value ) : مقدار کمتر یا مساوی محدودیت less than or equal را به property مورد نظر می دهد.
  • متد public static SimpleExpression gt ( String propertyName,Object value ) : مقداربیشتر از محدودیت grater than را به property مورد نظر می دهد.
  • متد public static SimpleExpression ge ( String propertyName,Object value ) : مقدار بیشتر یا مساوی محدودیت grater than or equal را به property مورد نظر می دهد.
  • متد public static SimpleExpression ne ( String propertyName,Object value ) : مقدار نابرابر و غیر همسان با محدودیت not equal را به property مورد نظر می دهد.
  • متد public static SimpleExpression eq ( String propertyName,Object value ) : مقدار مساوی و برابر با محدودیت تعیین شده را به property مورد نظر می دهد.
  • متد public static Criterion between(String propertyName, Object low, Object high) : این متد محدوده مجاز مقدار محدودیت را تعیین می کند.
  • متد public static SimpleExpression like(String propertyName, Object value) : این متد مقدار شبیه مقدار محدودیت like constraint را به property مورد نظر می دهد.

مثال کد نوشتن با زبان HCQL در Hibernate :

کد مثال خواندن تمامی رکوردها با استفاده از HCQL :

Crietria c=session.createCriteria(Emp.class);//passing Class class argument  
List list=c.list();
            

کد مثال خواندن رکوردهای 10 ام تا 20 ام در HCQL :

Crietria c=session.createCriteria(Emp.class);  
c.setFirstResult(10);  
c.setMaxResult(20);  
List list=c.list();   
            

کد مثال خواندن رکوردهایی که میزان salary آن ها بیشتر از 10000 است به وسیله HCQL :

Crietria c=session.createCriteria(Emp.class);  
c.add(Restrictions.gt("salary",10000));//salary is the propertyname  
List list=c.list();  
            

آموزش HCQL با Projection :

Crietria c=session.createCriteria(Emp.class);  
c.addOrder(Order.asc("salary"));  
List list=c.list();   
            

شما می توانید با استفاده از Projection اطلاعات مربوط به یک فیلد یا Column خاص مثل ستون name را استخراج کنید. در کد مثال زیر، برنامه فقط اطلاعات مربوط به ستون NAME از جدول مورد نظر را چاپ می کند :

Criteria c=session.createCriteria(Emp.class);  
c.setProjection(Projections.property("name"));  
List list=c.list();  
            
1395/07/12 2703 1026
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...