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

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

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

    隨筆-61  評(píng)論-159  文章-0  trackbacks-0
    在hibernate中,HQL支持條件查詢。
    1、支持字符串方式參數(shù)傳遞查詢:
    例子:
    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:由于,涉及到多個(gè)屬性查詢,所以返回的是Object數(shù)組類型。

    2、支持類似于PrepareStatement方式的?傳遞參數(shù)查詢
    例子:
    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:要設(shè)置參數(shù)從0開(kāi)始,見(jiàn)第2行。

    3、去變量方式參數(shù)傳遞
    例子:
    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:這個(gè)跟2中的相似,只是多了參數(shù)可以歸為一類。

    4、支持多參數(shù)傳遞
    例子:
    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:注意調(diào)用方法是setParameterList。

    5、調(diào)用數(shù)據(jù)庫(kù)里面的函數(shù)
    例子:

    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:數(shù)據(jù)庫(kù)函數(shù)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:只需要調(diào)用session里面的createSQLQuery方法即可。

    7、進(jìn)行導(dǎo)航查詢
    例子:

    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、分頁(yè)查詢
    例子:
    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:這是很簡(jiǎn)單的分頁(yè)查詢,分頁(yè)查詢實(shí)現(xiàn)比這個(gè)復(fù)雜多了,分頁(yè)查詢采用的相當(dāng)于數(shù)據(jù)庫(kù)里面的 limit ,來(lái)限制一次查詢顯示的條數(shù)。

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



    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒(méi)有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必注明作者文章的詳細(xì)出處地址,否則不允許轉(zhuǎn)載,多謝合作!
    posted on 2008-10-31 20:46 apple0668 閱讀(1466) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 亚洲另类无码专区丝袜| 在线观看亚洲av每日更新| A在线观看免费网站大全| 1000部国产成人免费视频| 99久9在线|免费| 3344免费播放观看视频| 黄色免费网站网址| 在线观看视频免费完整版| 成人免费午间影院在线观看| 成人免费无码大片a毛片软件| 成人免费无码大片A毛片抽搐色欲| 日韩免费视频一区| 国产一区二区视频免费| 亚洲精品国精品久久99热 | 51午夜精品免费视频| 猫咪免费人成网站在线观看入口 | ww亚洲ww在线观看国产| 亚洲欧好州第一的日产suv| 亚洲AV噜噜一区二区三区 | 亚洲男人天堂2018av| 亚洲国产成人AV网站| h视频在线免费观看| 久久黄色免费网站| 思思re热免费精品视频66| 成人永久福利免费观看| 亚洲黄片毛片在线观看| 久久国产亚洲电影天堂| 亚洲欧洲精品国产区| 亚洲av色香蕉一区二区三区| 一区二区三区免费看| 桃子视频在线观看高清免费视频| 国产人成免费视频网站| 国产片免费福利片永久| 亚洲欧洲自拍拍偷午夜色无码| 久久精品亚洲中文字幕无码麻豆 | 亚洲国产另类久久久精品黑人| 亚洲黄色在线播放| 99亚洲男女激情在线观看| 最近免费中文字幕MV在线视频3| 男女做羞羞的事视频免费观看无遮挡 | 亚洲日本VA午夜在线影院|