<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Kela's Blog

                前面的路很坎坷,但畢竟是條路.也許走過這一段就會發現,走過去就是夢想中的地方.因此堅持成為此刻唯一能做且必須去做的事情.
    posts - 9, comments - 27, trackbacks - 0, articles - 15

    kela的筆記 ORM產品 ---- hibernate(4)

    Posted on 2005-12-06 13:31 Kela 閱讀(329) 評論(0)  編輯  收藏 所屬分類: 我的筆記(Hibernate)

    使用Criteria Query 進行數據查詢

    Criteria Query 是一種通過對象化的查詢,并將數據查詢條件封裝為一個對象。
    簡單來看,可以看作是傳統SQL的對象化表示,如:
       criteria = session.createCriteria(KelaStudent.class);
       criteria.add(Expression.eq("stuName", "鄧立強"));
    這相當于SQL的 " select * from KELA_STUDENT where StuName = '鄧立強' "
     
    這種方式的特點是比價符合Java程序員的編碼習慣,非常的容易上手。

    更多的使用方法和參數,參考Hibernate文檔和深入淺出Hibernate等資料。

    示例一:StudentCriteriaQuery.java 一個基本 Criteria Query 的查詢

    /**
     * StudentCriteriaQueryl.java
     *
     * 基于 Criteria Query 的對象化查詢
     */
    package com.kela.hb.model;

    import java.util.Iterator;
    import java.util.List;

    import org.hibernate.Criteria;
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.criterion.Example;
    import org.hibernate.criterion.Expression;

    import com.kela.hb.pojo.KelaStudent;
    import com.kela.hb.util.HibernateUtil;

    /**
     * @author kangfeng(kela.kf@gmail.com)
     *
     */
    public class StudentCriteriaQuery {
     
      /*
       * 帶有表達式的 Criteria 查詢
       */
       public void exampleSelect_1() {
          Session session;
          Criteria criteria;
          try {
             session = HibernateUtil.currentSession();
             criteria = session.createCriteria(KelaStudent.class);
       
              //關于Expression提供的對應查詢限定機制, 可在Hibernate的文檔中獲得詳細資料
              //如果沒有一下的查詢條件則查詢所有的數據庫 KELA_STUDENT 的紀錄
       
              //查詢數據庫表 KELA_STUDENT 中 StuName = '鄧立強'的紀錄,
              //查詢條件中的stuName對應com.kela.hb.pojo.KelaStudent的屬性stuName
              //criteria.add(Expression.eq("stuName", "鄧立強"));
       
              //查詢年齡大于25歲的學生紀錄
              criteria.add(Expression.gt("stuAge", new Integer(25)));
      
               //如果同時出現幾個限定條件,如 StuName = '鄧立強'; stuAge > 25 則取交集
       
               KelaStudent kelaStudent = new KelaStudent();
       
               List list = criteria.list();
               Iterator it = list.iterator();
               while(it.hasNext()) {
                    kelaStudent = (KelaStudent)it.next();
                    System.out.print("  編號:" + kelaStudent.getStuID());
                    System.out.print("  名稱:" + kelaStudent.getStuName());
                    System.out.print("  性別:" + kelaStudent.getStuSex());
                    System.out.print("  年齡:" + kelaStudent.getStuAge());
                    System.out.print("  地址:" + kelaStudent.getStuAddress());
                    System.out.println();
               }
           } catch (HibernateException e) {
                System.out.println("[提示]: 查詢沒有成功," + e.getMessage());
           } finally {
                HibernateUtil.closeSession();
         }
      }
     
      /*
       * 示例查詢,根據已有的對象,查詢屬性與之相符的其它對象
       */
      public List exampleSelect_2(KelaStudent kelaStudent) {
          Session session;
          Criteria criteria;
          try {
              session = HibernateUtil.currentSession();
              criteria = session.createCriteria(KelaStudent.class);
              criteria.add(Example.create(kelaStudent));
              return criteria.list();
          } catch (HibernateException he) {
             System.out.println("[提示]: 查詢發生錯誤," + he.getMessage());
             return null;
          } finally {
             HibernateUtil.closeSession();
          }
      }
     
      /*
       * 調用示例查詢,并打印結果
       * 這種查詢并不常用,但是在組合查詢中非常的有用途。
       * 比如要查詢的條件有多個,但不能確定的時候,可以按照下面的例子使用,直接設定查詢的條件,
       * 然 后將對象傳入即可查詢。
       */
       public void exampleSelect_3() {
          KelaStudent kelaStudent = new KelaStudent();
          //在這里可以設置多個條件,如年齡,地址等
          kelaStudent.setStuName("鄧立強");
      
         List list = exampleSelect_2(kelaStudent);
         Iterator it = list.iterator();
         while(it.hasNext()) {
             kelaStudent = (KelaStudent)it.next();
             System.out.print("  編號:" + kelaStudent.getStuID());
             System.out.print("  名稱:" + kelaStudent.getStuName());
             System.out.print("  性別:" + kelaStudent.getStuSex());
             System.out.print("  年齡:" + kelaStudent.getStuAge());
             System.out.print("  地址:" + kelaStudent.getStuAddress());
             System.out.println();
         }
      
       }
     
       public static void main(String[] args) {
              StudentCriteriaQuery scq = new StudentCriteriaQuery();
      
              //查詢年齡大于25的學生紀錄
              scq.exampleSelect_1();

              //按照給定的條件進行查詢,這里為 name = '鄧立強'
              //scq.exampleSelect_3();
       }  

    }

    分享到:
    主站蜘蛛池模板: 色婷婷六月亚洲婷婷丁香| 亚洲精品成人网久久久久久| 亚洲春色在线视频| 免费看黄的成人APP| 亚洲欭美日韩颜射在线二| 一级黄色免费大片| 中文字幕亚洲一区二区va在线| 男男gay做爽爽的视频免费| 免费萌白酱国产一区二区| 爱情岛论坛免费视频| 亚洲高清免费视频| 中文在线免费看视频| 久久亚洲一区二区| 成人免费视频网站www| 亚洲精品中文字幕| 亚洲精品偷拍视频免费观看| 91av免费在线视频| 亚洲伊人久久大香线蕉苏妲己| 91短视频在线免费观看| 亚洲中文字幕无码爆乳app| 国产一精品一aⅴ一免费| 手机看片国产免费永久| 亚洲高清免费在线观看| 男女交性永久免费视频播放| 日韩在线视频免费| 亚洲AV成人片色在线观看高潮| 无码av免费毛片一区二区| 美女被暴羞羞免费视频| 国产成A人亚洲精V品无码| 免费福利视频导航| 日韩少妇内射免费播放| 亚洲今日精彩视频| 免费的一级黄色片| 视频免费在线观看| 亚洲精品无码av片| 亚洲动漫精品无码av天堂| 黄色网址免费观看| 人成电影网在线观看免费| 亚洲精品在线播放| 亚洲伊人久久成综合人影院| 亚洲免费在线视频播放|