使用Hibernate時,即使您不了解SQL的使用與撰寫,也可以使用它所提供的API來進行SQL語句查詢,
org.hibernate.Criteria對SQL進行封裝,您可以從Java物件的觀點來組合各種查詢條件,由Hibernate自動為您產生
SQL語句,而不用特別管理SQL與資料庫相依的問題,就某個程度的意涵來看,這就像是在編譯時期也可以得到對SQL語法的檢查與驗證。
以最基本的查詢來說,如果您想要查詢某個物件所對應的資料表中所有的內容,您可以如下進行查詢:
Criteria
criteria = session.createCriteria(User.class);
List users = criteria.list();
for(Iterator
it = users.iterator(); it.hasNext(); ) {
User user
= (User) it.next();
System.out.println(user.getId() + " \t " +
user.getName() + "/" +
user.getAge());
}
Restrictions的幾個常用限定查詢方法如下表所示:
方 法
|
說 明
|
Restrictions.eq
|
等於
|
Restrictions.allEq
|
使用Map,使用key/value進行多個等於的比對
|
Restrictions.gt
|
大於 >
|
Restrictions.ge
|
大於等於 >=
|
Restrictions.lt
|
小於 <
|
Restrictions.le
|
小於等於 <=
|
Restrictions.between
|
對應SQL的BETWEEN子句
|
Restrictions.like
|
對應SQL的LIKE子句
|
Restrictions.in
|
對應SQL的in子句
Criteria
criteria = session.createCriteria(EmpInfo.class).add( Restrictions.in("fname", new String[] { "bharat", "ankit","Vinay" }) );
|
Restrictions.and
|
and關係
|
Restrictions.or
|
or關係
|
Restrictions.sqlRestriction
|
SQL限定查詢
|