<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(5)

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

    Hibernate Query Language(HQL)

    相對于Criteria提供的符合面向對象風格的查詢封裝模式。HQL提供了更加豐富靈活的特性,它在涵蓋Criteria功能范圍的前提下,提供了更加強大的查詢(在Hibernate3中增加了實體的更新,刪除)能力。更多的HQL使用方法請參考Hibernate開發手冊和其它網絡資源。HQL為官方推薦查詢模式。
    示例:StudentCriteriaQuery.java一個基于HQL的查詢,更新,刪除。
    /**
     * StudentHQL.java
     * Hibernate Query Language(HQL)
     */
    package com.kela.hb.model;

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

    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

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


    /**
     * @author kangfeng(kela.kf@gmail.com)
     *
     */
    public class StudentHQL {
     
      /*
       * 實體查詢(查詢數據庫表中所有的紀錄)
       */
      public void exampleSelect_1(){
        Session session;
        Query query;
      
        String hql;
        try {
           session = HibernateUtil.currentSession();
       
           //查詢符合相應編號和年齡大于25的學生紀錄
           hql = " from com.kela.hb.pojo.KelaStudent as kelaStudent " +
                    " where kelaStudent.stuID = '402880fc07dfe16f0107dfe173640001' " +
                    " or kelaStudent.stuAge > 25";
          query = session.createQuery(hql);
          List list = query.list();
          Iterator it = list.iterator();
          while(it.hasNext()) {
             KelaStudent kelaStudent = (KelaStudent)it.next();
             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 he) {
           System.out.println("[提示]: 查詢數據發生錯誤," + he.getMessage());
        } finally {
           HibernateUtil.closeSession();
        }
     }
     
     /*
      * 屬性查詢(查詢數據庫表中需要的若干個字段)
      * 返回類型為數組方式
      */
     public void exampleSelect_2(){
       Session session;
       Query query;
      
       String hql;
       try {
          session = HibernateUtil.currentSession();
       
          //查詢KELA_STUDENT中字段為StuName,StuAge,StuAddress的所有紀錄
          //同樣也可以加一些條件
          hql = " select kelaStudent.stuName, kelaStudent.stuAge, kelaStudent.stuAddress " +
                   " from com.kela.hb.pojo.KelaStudent as kelaStudent ";
          query = session.createQuery(hql);
          List list = query.list();
          Iterator it = list.iterator();
          while(it.hasNext()) {
             Object[] rs = (Object[])it.next();
             System.out.print("    姓名:" + rs[0]);
             System.out.print("    年齡:" + rs[1]);
             System.out.print("    地址:" + rs[2]);
             System.out.println();
          }
        } catch(HibernateException he) {
           System.out.println("[提示]: 查詢數據發生錯誤," + he.getMessage());
        } finally {
           HibernateUtil.closeSession();
        }
      }
     
     /*
      * 參數綁定(使用順序占位符 ? ),相當于我們經常使用的:
      * select * from KELA_STUDENT where KelaID = ?    and KelaAge > ?
      */
      public void exampleSelect_3(){
        Session session;
        Query query;
      
        String hql;
         try {
            session = HibernateUtil.currentSession();
       
            //查詢符合相應編號和年齡大于20的學生紀錄
           hql = " from KelaStudent as kelaStudent " +
                    " where kelaStudent.stuID = ? or kelaStudent.stuAge >= ?";
           query = session.createQuery(hql);
           //注意了是從0開始的
           query.setString(0, "402880fc07dfe16f0107dfe173640001");
           query.setInteger(1, 20);
           List list = query.list();
           Iterator it = list.iterator();
           while(it.hasNext()) {
               KelaStudent kelaStudent = (KelaStudent)it.next();
               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 he) {
           System.out.println("[提示]: 查詢數據發生錯誤," + he.getMessage());
        } finally {
           HibernateUtil.closeSession();
        }
      }
     
      /*
       * 參數綁定(使用引用占位符 : ),相當于我們經常使用的:
       * select * from KELA_STUDENT where KelaID = ? and KelaAge > ?
       */
       public void exampleSelect_4(){
         Session session;
         Query query;
      
         String hql;
         try {
            session = HibernateUtil.currentSession();
       
             //查詢符合相應編號的學生紀錄
             hql = " from KelaStudent as kelaStudent " +
                      " where kelaStudent.stuID = :stuID ";
             query = session.createQuery(hql);
             //stuID 對應 :stuID
             query.setParameter("stuID", "402880fc07dfe16f0107dfe173640001");
             List list = query.list();
             Iterator it = list.iterator();
             while(it.hasNext()) {
                 KelaStudent kelaStudent = (KelaStudent)it.next();
                 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 he) {
             System.out.println("[提示]: 查詢數據發生錯誤," + he.getMessage());
          } finally {
             HibernateUtil.closeSession();
          }
       }
     
       /*
        * 利用HQL的更新
        */
       public void exampleUpdate() {
         Session session;
         Transaction tran;
         Query query;
      
         String hql;
         try {

            session = HibernateUtil.currentSession();
            tran = session.beginTransaction();
       
             hql = " update KelaStudent " +
                      " set stuAge = 30 " +
                      " where stuID = '402880fc07dfe16f0107dfe173640001' ";
             query = session.createQuery(hql);
             System.out.println("更新的紀錄條數是:" + query.executeUpdate());
             tran.commit();
         } catch (HibernateException he) {
             System.out.println("[提示]: 更新數據發生錯誤," + he.getMessage());
         } finally {
              HibernateUtil.closeSession();
          }
       }
     
      /*
       * 利用HQL的刪除
       */
      public void exampleDelete() {
        Session session;
        Transaction tran;
        Query query;
      
        String hql;
        try {
            session = HibernateUtil.currentSession();
            tran = session.beginTransaction();
       
            hql = "delete KelaStudent where stuID = '402880fc080437200108043725760001'";
       
           query = session.createQuery(hql);
           System.out.println("刪除紀錄的條數是:" + query.executeUpdate());
            tran.commit();
         } catch(HibernateException he) {
            System.out.println("[提示]: 刪除數據發生錯誤," + he.getMessage());
         } finally {
             HibernateUtil.closeSession();
         }
      }
      public static void main(String[] args) {
      
          StudentHQL studentHQL = new StudentHQL();
           studentHQL.exampleSelect_1();
      }

    }

    分享到:
    主站蜘蛛池模板: 免费中文字幕一级毛片| 色猫咪免费人成网站在线观看| 在线播放免费播放av片| 亚洲人成影院午夜网站| 69堂人成无码免费视频果冻传媒| 久久综合亚洲色HEZYO社区| 99热在线免费播放| 亚洲国色天香视频| 91精品免费在线观看| 狠狠色香婷婷久久亚洲精品| 好男人视频社区精品免费| 亚洲日本天堂在线| 国产a级特黄的片子视频免费| 国产亚洲综合久久| 亚洲精品专区在线观看| 国产va免费精品| 亚洲成AV人片在线观看| 亚洲a一级免费视频| 亚洲二区在线视频| 永久免费bbbbbb视频| 男人免费视频一区二区在线观看| 亚洲无码黄色网址| 99精品视频在线观看免费| 国产亚洲精品成人AA片新蒲金| 大地资源在线资源免费观看| 亚洲精品线在线观看| 免费中文熟妇在线影片| 看全免费的一级毛片| 亚洲成AV人在线观看天堂无码| 18pao国产成视频永久免费| 亚洲AV男人的天堂在线观看| jjzz亚洲亚洲女人| 精品四虎免费观看国产高清午夜| 亚洲欧洲日产国码在线观看| 国产精品色午夜免费视频| 日本道免费精品一区二区| 亚洲国产成人99精品激情在线| 深夜国产福利99亚洲视频| 97国产在线公开免费观看| 精品无码专区亚洲| 亚洲国产综合专区电影在线|