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

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

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

    隨筆-61  評論-159  文章-0  trackbacks-0

    hibernate查詢語言hql

    在hql中關鍵字不區分大小寫,但是屬性和類名區分大小寫

    1、簡單屬性查詢
    1>如果對單一屬性進行查詢,返回結果集屬性列表,元素類型和實體類中相應的屬性類型一致
     

    例子:

    1List students = session.createQuery("select name from Student").list();
    2            for (Iterator iter=students.iterator(); iter.hasNext();) {
    3                String name = (String)iter.next();
    4                System.out.println("student.name="+name);
    5            }

    由于第1行中的name是String字符串類型,所以第三行對應的也要是字符串類型。其他的字段也要保持一致。

    2>如果是對多個屬性進行查詢,返回的是Object數組類型,所以其元素類型也要與相對應的屬性類型保持一致。

    例子:

    1List students = session.createQuery("select id,name from Student").list();
    2   for (Iterator iter=students.iterator(); iter.hasNext();) {
    3    Object[] o = (Object[])iter.next();
    4    System.out.println(o[0]+","+o[1]);
    5   }


    PS:如果想返回的類型與原來的對象類型保持一致的話,就例子而言就是Student類型,首先先包住Student的POJO類中有Student的兩個id,name參數的構造方法。

    1List students = session.createQuery("select new Student(id,name) from Student").list();
    2            for (Iterator iter=students.iterator(); iter.hasNext();) {
    3                Student s = (Student)iter.next();
    4                System.out.println(s.getId()+","+s.getName());
    5            }

    注:第一行中的new Student(id,name)很重要,決定返回是Student類型,這樣更對象化,其他第3行也一致。

    2、實體查詢
    實體查詢中,涉及到對對象的查詢,對于多個記錄,就一般用Querry接口里面的list()和iterate()方法來迭代。
    兩種方法的區別是:
                                      一、list(),對條件符合的數據全部一次加載,只發出一條語句。
                                      二、iterate(),先把符合條件的id全部查詢出來,然后,再根據里面id數量,發出相應的sql語句,就是有N條記錄就查詢N+1次。
    PS:相對而已,lsit()加載了直接放在一級緩存里面,就是Session里面,從來不使用Session
                                iterate()一開始加載,先從一級緩存里面加載,如果有就只查詢一次,如果沒有就先把符合條件的id全部查詢出來,然后,再根據里面id數量,發出相應的sql語句,就是有N條記錄就查詢N+1次。
    例子:

    1List students = session.createQuery("from Student as s").list();
    2            for (Iterator iter=students.iterator(); iter.hasNext();) {
    3                Student s = (Student)iter.next();
    4                System.out.println("student.name="+s.getName());
    5            }

    注:只發出一條語句。

    1Iterator students = session.createQuery("from Student").iterate();
    2            while(students.hasNext())
    3            {
    4                Student s = (Student)students.next();
    5                System.out.println("s.name="+s.getName());
    6                
    7            }

    注:發出N+1條語句,因為一級緩存里面沒有相應的記錄。

     1List students = session.createQuery("from Student").list();
     2                for (Iterator iter=students.iterator(); iter.hasNext();) {
     3                    Student s = (Student)iter.next();
     4                    System.out.println("student.name="+s.getName());
     5                }

     6                System.out.println("---------------------------------------------------");
     7                Iterator it = session.createQuery("from Student").iterate();
     8                while(it.hasNext())
     9                {
    10                    Student s = (Student)it.next();
    11                    System.out.println("s.name="+s.getName());
    12                    
    13                }

    注:只發出兩條查詢語句,因為list()已經把數據存在一級緩存里面,對應iterate()先從一級緩存里面查找,所以總共只發出兩條查詢語句。




    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
    posted on 2008-10-28 23:56 apple0668 閱讀(811) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 国产精品美女免费视频观看| 精品久久久久久久久亚洲偷窥女厕| 日韩免费码中文在线观看| 青青草国产免费久久久91| 亚洲视频在线观看2018| 亚洲伊人久久精品影院| 日韩免费码中文在线观看| MM131亚洲国产美女久久| 久青草国产免费观看| 久久精品国产亚洲5555| 国产性生大片免费观看性| 亚洲精品高清国产一线久久| 亚洲午夜电影一区二区三区| 37pao成人国产永久免费视频| 亚洲五月激情综合图片区| 日韩精品亚洲专区在线影视| 日本媚薬痉挛在线观看免费| 国产精品亚洲色婷婷99久久精品| 亚洲AV中文无码乱人伦| 国产福利免费视频 | jjizz全部免费看片| 亚洲婷婷天堂在线综合| 毛片免费观看的视频在线| 欧美亚洲国产SUV| 久久久久亚洲AV成人网人人网站 | 亚洲一区欧洲一区| 亚洲国产一区二区三区在线观看| 免费在线观看黄网站| 最近国语视频在线观看免费播放 | 亚洲视频在线免费观看| 一二三四在线播放免费观看中文版视频 | 无码免费又爽又高潮喷水的视频| 亚洲精品无码AV人在线播放| 67pao强力打造国产免费| 久久亚洲精品无码网站| 亚洲人成人无码网www电影首页| 最近中文字幕无免费| 精品亚洲成A人在线观看青青| 亚洲人成在线播放网站| 国产无人区码卡二卡三卡免费| 美女又黄又免费的视频|