2018年1月21日 星期日

Criteria 基本查詢

參考出處: https://openhome.cc/Gossip/HibernateGossip/CriteriaBasic.html

使用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限定查詢





沒有留言:

Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致, 有時會產生字串過長,導致無法寫入資料庫的情況. 這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度 JAVA 依 不同編碼, 其長度是不一樣的 如: ...