hibernate共有三種查詢方式:hql、qbc和sql
hql
寫起來靈活直觀,而且與所熟悉的sql的語法類似。條件查詢、分頁查詢、連線查詢、巢狀查詢,包括一些查詢函式(count(),sum()等)、查詢條件的設定等寫起來與sql語法一致,主要區別就是把表名換成了類或者物件。
注意:在hql中關鍵字不區分大小寫,但是屬性和類名區分大小寫
static void query(string name)
}finally
}
qbc(query by criteria)
這種方式比較物件導向方式,重點是有三個描述條件的物件:restrictions,order,projections。使用qbc查詢,一般需要以下步驟:
1 使用session例項的createcriteria()方法建立criteria物件;2 使用工具類restrictions的方法為criteria物件設定查詢條件;
3 order工具類的方法設定排序方式;
4 projections工具類的方法進行統計和分組;
3 使用criteria物件的list()方法進行查詢並返回結果;
static void cri(string name,string password)
}finally
}
sql
就是採用原生sql進行查詢
static list sql()
query.iterator的n+1查詢(基於一的hql,多見於一對多、多對多的關聯對映)
n + 1問題,在預設情況下,使用query.iterate查詢,有可以能出現n+1問題;所謂的n+1是在查詢的時候發出了n+1條sql語句
list和iterate的區別?query q=session.createquery(「from userinfo」);
iteratorlist=q.iterate();
while(list.hasnext())
避免n+1查詢解決方法:1 可以將fetch抓取資料的屬性改為「join」,來避免n+1次的查詢;2 使用二級快取
hibernate查詢方式舉例
hibernate查詢方式舉例 1 單個物件 a query query session.createquery from consortbean a where a.person.id query.setstring 0,pb.getid 引數從零開始 list list query.list b...
hibernate查詢方式比較
推舉利用gethibernatetemplate executewithnativesession sqlquery方法。下面我用自己寫的 為例,進行說明。下面是dao層的我寫的一段 供參考 查詢卡等級 author yangliang created 2011 11 24 下午05 31 33 s...
十 Hibernate 查詢方式
hibernate 查詢方式簡介 1,導航物件圖查詢方式 2,oid 查詢方式 3,本地 sql 查詢方式 4,hql 查詢方式 5,qbc 查詢方式 query by criteria 導航物件圖查詢方式 根據已經載入的物件導航到其他物件 例如 在前面的各種對映關係中,實體類包含對其他類物件的引用...