91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Criteria查詢語句的示例分析

發布時間:2021-12-30 14:18:11 來源:億速云 閱讀:152 作者:小新 欄目:編程語言

這篇文章主要介紹了Criteria查詢語句的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Criteria查詢

package com.shiryu.otm;   import java.util.Iterator;  import java.util.List;   import org.hibernate.Criteria;  import org.hibernate.Session;  import org.hibernate.SessionFactory;  import org.hibernate.Transaction;  import org.hibernate.cfg.Configuration;  import org.hibernate.criterion.DetachedCriteria;  import org.hibernate.criterion.Expression;  import org.hibernate.criterion.Order;  import org.hibernate.criterion.Projections;  import org.hibernate.criterion.Subqueries;   public class Test2 {      public static void main(String args[]) {          SessionFactory factory = new Configuration().configure().buildSessionFactory();          Session session = factory.openSession();          Transaction tr = session.beginTransaction();           // Criteria查詢語句的補充          // 一、復合查詢          // 在這個一對多的例子中。我們使用復合查詢,查詢所有用戶及其地址。          // Criteria criteria = session.createCriteria(User.class);          // List list = criteria.list();          //          // for (int i = 0; i <  list.size(); i++) {          // User user = (User) list.get(i);          // System.out.println("\t user:"+i+" name is:" + user.getName());          //                      // Set addrSet = user.getAddresses();          // Iterator it = addrSet.iterator();          // while(it.hasNext()){          // Address addr = (Address)it.next();          // System.out.println("\t\t user:"+i+" address is:"+addr.getAddress());          // }          // }           // 通過Criteria查詢條件,我們可以查詢位于上海的用戶          // Criteria criteria = session.createCriteria(User.class);          //          // Criteria addCriteria =          // criteria.createCriteria("addresses");//這里addresses和User類對應          // addCriteria.add(Expression.like("address",          // "%shanghai%"));//這里構造新的Criteria查詢過濾條件          // List list = criteria.list();          //          // for (int i = 0; i <  list.size(); i++) {          // User user = (User) list.get(i);          // System.out.println("\t user:" + i + " name is:" + user.getName());          //          // Set addrSet = user.getAddresses();          // Iterator it = addrSet.iterator();          // while (it.hasNext()) {          // Address addr = (Address) it.next();          // System.out.println("\t\t user:" + i + " address is:"          // + addr.getAddress());          // }          // }           /*          * 二、DetachedCriteria的使用 hibernate2 中critria          * 生命周期位于宿主Session生命周期之內,session創建criteria實例,Session被銷毀,critria實例也隨之失效          * 這很大程度上限制了criteria的重用hibernate3 中提供了DetachedCriteria          * 它可以脫離Session實例獨立存在,我們可以把通用的criteria查詢條件進行抽離,更好的實現代碼重用          */          DetachedCriteria deCriteria = DetachedCriteria.forClass(User.class);          deCriteria.add(Expression.eq("name", "zhaiyu"));          deCriteria.add(Expression.eq("age", new Integer(21)));           Criteria criteria = deCriteria.getExecutableCriteria(session);// 在其需要的時候與session進行綁定          Iterator it = criteria.list().iterator();          while (it.hasNext()) {              User user = (User) it.next();              System.out.println(user.getName());          }           /*          * DetachedCriteria 也可以用于子查詢表達 下例返回了年齡超過了平均值的用戶記錄          */         DetachedCriteria avgAge = DetachedCriteria.forClass(User.class);          avgAge.setProjection(Projections.avg("age"));           Criteria criteria2 = session.createCriteria(User.class);          criteria2.add(Subqueries.propertyGt("age", avgAge));           List list = criteria2.list();          // 我們可以將DetachedCriteria納入查詢表達式 :select ... from User where age > (select          // avg(age) from User)          // (select avg(age) from User) 由DetachedCriteria avgAge描述           /* 三、Criteria查詢語句的高級特性 */         // 限定返回記錄范圍          Criteria criteria3 = session.createCriteria(User.class);          // 限定從第100條開始的20條記錄          criteria3.setFirstResult(100);          criteria3.setMaxResults(20);           // 對記錄進行排序          Criteria criteria4 = session.createCriteria(User.class);          criteria4.add(Expression.eq("id", new Integer(2)));          criteria4.addOrder(Order.asc("name"));          criteria4.addOrder(Order.desc("id"));           /* Criteria分組與統計 */         Criteria criteria5 = session.createCriteria(User.class);          criteria5.setProjection(Projections.groupProperty("age"));           Iterator it3 = criteria5.list().iterator();          while (it.hasNext()) {              System.out.println(it.next());          }      }  }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Criteria查詢語句的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁明县| 金溪县| 揭阳市| 延寿县| 嘉禾县| 兴山县| 西丰县| 石柱| 兴安县| 民权县| 绥中县| 皋兰县| 嘉义县| 通道| 江都市| 都兰县| 固镇县| 昌都县| 柳林县| 宣城市| 富阳市| 巩义市| 文登市| 黄梅县| 宣恩县| 芜湖市| 农安县| 徐汇区| 五大连池市| 桂平市| 临武县| 靖江市| 鹿泉市| 三亚市| 巫溪县| 德化县| 山阴县| 城固县| 诸暨市| 喜德县| 家居|