和風(fēng)細(xì)雨

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

          Hibernate之 Criteria查詢

          Criteria查詢

          Hibernate中的Criteria API提供了另一種查詢持久化的方法。它讓你能夠使用簡(jiǎn)單的API動(dòng)態(tài)的構(gòu)建查詢,它靈活的特性通常用于搜索條件的數(shù)量可變的情況。
          Criteria查詢之所以靈活是因?yàn)樗梢越柚鶭ava語言,在Java的幫助下它擁有超越HQL的功能。Criteria查詢也是Hibernate竭力推薦的一種面向?qū)ο蟮牟樵兎绞健?br /> Criteria查詢的缺點(diǎn)在于只能檢索完整的對(duì)象,不支持統(tǒng)計(jì)函數(shù),它本身的API也抬高了一定的學(xué)習(xí)坡度。

          Criteria查詢示例代碼

          Session session=HibernateUtil.getSession();

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

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

            HibernateUtil.closeSession(session);

          Criteria查詢實(shí)際產(chǎn)生的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 '關(guān)%'
              and this_.email in (
                  '1@2.3', '2@2.3', '3@2.3'
              )
              and this_.pswd='1'
          order by
              this_.lastLoginTime asc

          注:參數(shù)是手工加上的。

          posted on 2008-04-30 17:21 和風(fēng)細(xì)雨 閱讀(1684) 評(píng)論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 阿城市| 甘孜县| 三门峡市| 无为县| 南召县| 漠河县| 望谟县| 航空| 开化县| 秀山| 尚志市| 砀山县| 辰溪县| 色达县| 潞西市| 化隆| 库伦旗| 南开区| 张家口市| 闵行区| 乌海市| 勃利县| 甘南县| 精河县| 定兴县| 民乐县| 永昌县| 雅安市| 樟树市| 河北区| 内江市| 辽中县| 岐山县| 广宁县| 大埔区| 西乌珠穆沁旗| 莲花县| 永川市| 麻阳| 新干县| 昌乐县|