<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支持條件查詢。
    1、支持字符串方式參數傳遞查詢:
    例子:
    1List students = session.createQuery("select s.id,s.name from Student s where s.name like '%1' ").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:由于,涉及到多個屬性查詢,所以返回的是Object數組類型。

    2、支持類似于PrepareStatement方式的?傳遞參數查詢
    例子:
    1List students = session.createQuery("select s.id,s.name from Student s where s.name like ? ")
    2                                                .setParameter(0"%1%").list();
    3            for (Iterator iter=students.iterator(); iter.hasNext();) {
    4                Object[] o = (Object[])iter.next();
    5                System.out.println(o[0]+","+o[1]);
    6            }

    PS:要設置參數從0開始,見第2行。

    3、去變量方式參數傳遞
    例子:
    1List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ")
    2                                                .setParameter("goodname""%1%").list();
    3            for (Iterator iter=students.iterator(); iter.hasNext();) {
    4                Object[] o = (Object[])iter.next();
    5                System.out.println(o[0]+","+o[1]);
    6            }
    PS:這個跟2中的相似,只是多了參數可以歸為一類。

    4、支持多參數傳遞
    例子:
    1List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
    2            .setParameterList("myids"new Object[]{12345,32,13,14})
    3                .list();
    4            for (Iterator iter=students.iterator(); iter.hasNext();) {
    5                Object[] o = (Object[])iter.next();
    6                System.out.println(o[0]+","+o[1]);
    7            }
    PS:注意調用方法是setParameterList。

    5、調用數據庫里面的函數
    例子:

    1List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
    2            .setParameter(0"2008-10")
    3                .list();
    4            for (Iterator iter=students.iterator(); iter.hasNext();) {
    5                Object[] o = (Object[])iter.next();
    6                System.out.println(o[0]+","+o[1]);
    7            }
    PS:數據庫函數date_format。

    6、直接支持sql查詢
    例子:
    1List students = session.createSQLQuery("select *from t_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:只需要調用session里面的createSQLQuery方法即可。

    7、進行導航查詢
    例子:

    1List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();
    2            for (Iterator iter=students.iterator(); iter.hasNext();) {
    3                String s = (String)iter.next();
    4                System.out.println(s);
    5            }
    PS:這種查詢很方便。

    8、分頁查詢
    例子:
    1List students = session.createQuery("from Student").setFirstResult(0).setMaxResults(3).list();
    2            for (Iterator iter=students.iterator(); iter.hasNext();) {
    3                Student student = (Student)iter.next();
    4                System.out.println(student.getName());
    5            }

    PS:這是很簡單的分頁查詢,分頁查詢實現比這個復雜多了,分頁查詢采用的相當于數據庫里面的 limit ,來限制一次查詢顯示的條數。

    注:還有一些其他就不一一列舉了,在hibernate的使用中HQL查詢語言如果用得好,會給工作帶來比較高的效率,比較重要,而且還有一個查詢效率的問題,這涉及到緩存等方面,以后會更新這方面的文章。



    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
    posted on 2008-10-31 20:46 apple0668 閱讀(1466) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 日韩精品电影一区亚洲| 91九色老熟女免费资源站| 波多野结衣久久高清免费| 亚洲欧洲校园自拍都市| 日韩精品极品视频在线观看免费| 亚洲精品中文字幕乱码三区| av永久免费网站在线观看 | 性做久久久久久久免费看| 亚洲免费在线视频| 免费无码成人AV在线播放不卡| 亚洲天堂中文资源| 免费黄色网址网站| 色老板亚洲视频免在线观| 大陆一级毛片免费视频观看 | 亚洲国产天堂久久久久久| 人人公开免费超级碰碰碰视频| 国产成人精品日本亚洲专区| 中文在线免费视频| 一区二区三区亚洲| 最近中文字幕免费mv视频7| 亚洲中文无码卡通动漫野外| 国产成人综合久久精品免费| 免费人妻精品一区二区三区| 亚洲欧洲国产精品香蕉网| 中文字幕免费视频| 亚洲欧美国产国产综合一区| 又黄又爽的视频免费看| a毛片视频免费观看影院| 亚洲国产精品网站久久| 日本不卡在线观看免费v| 羞羞视频免费网站在线看| 亚洲短视频在线观看| 国产成人免费片在线观看| 中文字幕在线观看免费| 亚洲中字慕日产2020| 亚洲人午夜射精精品日韩| 98精品全国免费观看视频| 黄页网站在线免费观看| 亚洲精品无码久久久久久久| 无码专区一va亚洲v专区在线| 3344在线看片免费|