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

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

          Hibernate之 Criteria查詢

          Criteria查詢

          Hibernate中的Criteria API提供了另一種查詢持久化的方法。它讓你能夠使用簡單的API動態(tài)的構(gòu)建查詢,它靈活的特性通常用于搜索條件的數(shù)量可變的情況。
          Criteria查詢之所以靈活是因?yàn)樗梢越柚鶭ava語言,在Java的幫助下它擁有超越HQL的功能。Criteria查詢也是Hibernate竭力推薦的一種面向?qū)ο蟮牟樵兎绞健?br /> Criteria查詢的缺點(diǎn)在于只能檢索完整的對象,不支持統(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ì)雨 閱讀(1692) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 酒泉市| 澎湖县| 鹤庆县| 南和县| 大同县| 沐川县| 深泽县| 大竹县| 额济纳旗| 韩城市| 静乐县| 桐庐县| 天峨县| 理塘县| 吉隆县| 共和县| 彰化县| 宣化县| 蓬莱市| 四子王旗| 南郑县| 溆浦县| 苏尼特右旗| 峡江县| 福清市| 大石桥市| 体育| 龙门县| 永康市| 观塘区| 永安市| 秦安县| 东辽县| 唐河县| 东乌| 津南区| 桐庐县| 莱芜市| 江安县| 社会| 襄垣县|