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

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

          Hibernate之 Criteria查詢

          Criteria查詢

          Hibernate中的Criteria API提供了另一種查詢持久化的方法。它讓你能夠使用簡單的API動態(tài)的構(gòu)建查詢,它靈活的特性通常用于搜索條件的數(shù)量可變的情況。
          Criteria查詢之所以靈活是因為它可以借助Java語言,在Java的幫助下它擁有超越HQL的功能。Criteria查詢也是Hibernate竭力推薦的一種面向?qū)ο蟮牟樵兎绞健?br /> Criteria查詢的缺點在于只能檢索完整的對象,不支持統(tǒng)計函數(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"));
          // 排序條件:按登錄時間升序
          criteria.addOrder(Order.asc("lastLoginTime"));

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

            HibernateUtil.closeSession(session);

          Criteria查詢實際產(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) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 若尔盖县| 汾阳市| 昌图县| 无棣县| 乳山市| 台山市| 长兴县| 永嘉县| 酉阳| 綦江县| 容城县| 大英县| 武强县| 怀化市| 朝阳区| 衢州市| 濮阳市| 蒙自县| 英超| 长治市| 特克斯县| 伊宁市| 凌海市| 大丰市| 吴旗县| 凤山县| 利川市| 安阳市| 上饶县| 江阴市| 淳安县| 兰坪| 玛沁县| 边坝县| 景德镇市| 柞水县| 黄浦区| 桓仁| 梁山县| 松潘县| 娱乐|