和風細雨

          世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術自出。

          Hibernate之 Criteria查詢

          Criteria查詢

          Hibernate中的Criteria API提供了另一種查詢持久化的方法。它讓你能夠使用簡單的API動態的構建查詢,它靈活的特性通常用于搜索條件的數量可變的情況。
          Criteria查詢之所以靈活是因為它可以借助Java語言,在Java的幫助下它擁有超越HQL的功能。Criteria查詢也是Hibernate竭力推薦的一種面向對象的查詢方式。
          Criteria查詢的缺點在于只能檢索完整的對象,不支持統計函數,它本身的API也抬高了一定的學習坡度。

          Criteria查詢示例代碼

          Session session=HibernateUtil.getSession();

          Criteria criteria=session.createCriteria(User.class);
            // 條件一:名稱以關開頭
          criteria.add(Restrictions.like("name", "關%"));
          // 條件二:email出現在數組中
          String[] arr={"1@2.3","2@2.3","3@2.3"};
          criteria.add(Restrictions.in("email", arr));
          // 條件三:password等于一
          criteria.add(Restrictions.eq("password", "1"));
          // 排序條件:按登錄時間升序
          criteria.addOrder(Order.asc("lastLoginTime"));

          List<User> users=(List<User>)criteria.list();
          System.out.println("返回的User實例數為"+users.size());
          for(User user:users){
          System.out.println(user);
          }

            HibernateUtil.closeSession(session);

          Criteria查詢實際產生的SQL語句

          select
              this_.ID as ID0_0_,
              this_.name as name0_0_,
              this_.pswd as pswd0_0_,
              this_.email as email0_0_,
              this_.lastLoginTime as lastLogi5_0_0_,
              this_.lastLoginIp as lastLogi6_0_0_
          from
              USERTABLE_OKB this_
          where
              this_.name like '關%'
              and this_.email in (
                  '1@2.3', '2@2.3', '3@2.3'
              )
              and this_.pswd='1'
          order by
              this_.lastLoginTime asc

          注:參數是手工加上的。

          posted on 2008-04-30 17:21 和風細雨 閱讀(1692) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 开远市| 怀集县| 五莲县| 高密市| 安陆市| 阳原县| 大荔县| 金湖县| 武乡县| 连城县| 重庆市| 宿州市| 巴里| 济源市| 通江县| 乡宁县| 安远县| 台山市| 达日县| 手游| 任丘市| 宁强县| 东城区| 丹凤县| 遵义市| 龙州县| 睢宁县| 凉城县| 天柱县| 萍乡市| 公主岭市| 灵石县| 富蕴县| 江山市| 即墨市| 西安市| 林西县| 巴东县| 工布江达县| 福州市| 长宁县|