1. 程式人生 > >Hibernate學習——查詢方式(HQL、Criteria、SQL)

Hibernate學習——查詢方式(HQL、Criteria、SQL)

Hibernate框架的批量查詢有三種實現方式:

  • HQL

  • Criteria

  • SQL

這三種方式無論過程有什麼不同,最終結果都是通過sql語句實現查詢操作。

 

HQL是Hibernate框架封裝好的一種查詢語言

基本操作:

//  String hql="select *  from com.huhu.domain.Customer ";  //  書寫HQL語句

String hql="from com.huhu.domain.Customer ";

// String hql="from Customer ";

Query query = session.createQuery(hql);  //  根據HQL語句建立Query 查詢操作物件

List<Customer> list = query.list();  //  查詢並返回集合

上面的操作就是查詢資料庫中所有 Customer的資訊。如果前面是select * (查詢所有),則可以省略不寫。

  • 注意:HQL語句中,不會出現表的任何表名、列名等欄位資訊,而是出現物件的實體類名和屬性名,HIbernate會根據配置檔案中的配置來轉換為對應的表名和列名,如果實體類名在專案中沒有與其重複的類,可以簡寫實體類名,而不寫全包名

Criteria查詢(無語句查詢方式)

基本操作:

Criteria criteria = session.createCriteria(Customer.class);  // 建立面向物件查詢物件,注意:此種建立方法已經過時,新方法還在學習中--  -.-  --
List<Customer> list = criteria.list();  // 查詢所有物件資訊並返回集合

以上同樣是實現查詢資料庫中所有 Customer的資訊。當然還可以新增查詢條件(相當於sql中的where):如

criteria.add(Restrictions.eq("cust_id" , 1l ));  // 查詢id為1的Customer物件(因為cust_id型別為Long所以寫1l)

 

 

 

 獲取自以下頁面:https://www.cnblogs.com/deng-cc/p/6428599.html

 Sql查詢就寫個例子吧,不多說:

基本操作:

String sql = "select * from cst_customer ";  // 建立sql查詢語句

SQLQuery query = session.createSQLQuery(sql);  // 根據sql語句建立查詢方式

query.addEntity(Customer.class);  // 新增查詢物件

List<Customer> list = query.list();  // 查詢並返回結果