<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 閱讀(304) 評論(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();
      }

    }

    分享到:
    主站蜘蛛池模板: 妞干网手机免费视频| 成人免费看黄20分钟| 亚洲一区精彩视频| 国产亚洲精品成人a v小说| 2022久久国产精品免费热麻豆| 亚洲hairy多毛pics大全| 亚洲精品无码不卡| 国产免费人成在线视频| 亚洲免费视频观看| 成人精品综合免费视频| 亚洲不卡视频在线观看| 久久亚洲国产中v天仙www| 亚洲国产中文v高清在线观看| 最近免费中文在线视频| 免费一级毛片无毒不卡| 九九久久精品国产免费看小说| 亚洲欧好州第一的日产suv| 亚洲日韩区在线电影| 亚洲av中文无码乱人伦在线r▽| 暖暖在线日本免费中文| 日韩毛片免费在线观看| 最近在线2018视频免费观看| 57pao一国产成视频永久免费| 爱丫爱丫影院在线观看免费| 99在线热播精品免费99热| 亚洲午夜在线播放| 日韩精品免费电影| 国内精品免费久久影院| baoyu777永久免费视频| 18禁止看的免费污网站| 一色屋成人免费精品网站| 四虎影院免费视频| 最新国产AV无码专区亚洲| 久久精品九九亚洲精品| 国产成人人综合亚洲欧美丁香花| 色偷偷亚洲男人天堂| 国产亚洲蜜芽精品久久| a级毛片免费高清视频| 91免费福利视频| 在线观看免费av网站| 成人激情免费视频|