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

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

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

    迷失北京

    BlogJava 聯(lián)系 聚合 管理
      60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

    HQL實例:

    1. 查詢表中的所有記錄:from Category

    2. 帶有where子句的條件查詢:from Category c where c.name > 'c5'

    3. 結(jié)果根據(jù)某一字段排序:from Category c order by c.name desc(desc表示降序排列,asc表示升序排列)

    4. 去除重復記錄獲得單一記錄:select distinct c from Category c order by c.name desc

    5. 帶有參數(shù)的查詢:from Category c where c.id > :min and c.id < :max。hql語句中’:min’ 表示的是參數(shù),可以像jdbc中一樣,為參數(shù)賦值。在hql中可以這樣,這里也運用了鏈式編程:

    session.createQuery("from Category c where c.id > :min and c.id < :max")

    .setInteger("min", 2)

    .setInteger("max", 8);

    6. 帶參數(shù)hql查詢的另外一種查詢:from Category c where c.id > ? and c.id < ?

    7. hibernate分頁查詢 

    Query q = session.createQuery("from Category c order by c.name desc");

    q.setMaxResults(3);

    q.setFirstResult(0);

    其中setMaxResult()是設置每頁的最大顯示量,setFirstResult()是設置其實元素從哪里開始,這里0代表最后一條元素。

    8. 多表連接查詢:select t.title, c.name from Topic t join t.category c

    9. HQL函數(shù):

    a) Count():select count(*) from Msg m

    b) Max()-min()-avg():select max(m.id), min(m.id), avg(m.id), sum(m.id) from Msg m

    c) Between:from Msg m where m.id between 3 and 5

    d) In:from Msg m where m.id in (3, 4, 5)

    10. Is null;is not null:from Msg m where m.cont is not null

    11. Is empty:from Topic t where t.msgs is empty

    12. Like:from Topic t where t.title like '%5''%'匹配所有字符,'_'匹配單個字符。

    13. 

    一些功能函數(shù),但是不重要了解即可:select lower(t.title)," +

     "upper(t.title)," +

     "trim(t.title)," +

     "concat(t.title, '***')," +

     "length(t.title)" +

          " from Topic t ")

    Trim()是去掉首尾空格,返回字符串的副本,concat()將字符串欲查詢出的字符串連接。

    14. Abs()-sqrt()-mod():select abs(t.id)," +  "sqrt(t.id)," + "mod(t.id,2)" + " from Topic t 

    15. 獲取當前的時間:select current_date, current_time, current_timestamp, t.id from Topic t

    16. Having子句:select t.title, count(*) from Topic t group by t.title having count(*) <= 1

    17. Existfrom Topic t where not exists (select m.id from Msg m where m.topic.id=t.id)

    需要注意的一點:in同樣可以實現(xiàn)exist的功能,但是exist的執(zhí)行效率較高。

    18. Update的用法:update Topic t set t.title = upper(t.title)

    19. hql刪除的三種方式:

    Hibernate的刪除方式:

    /*方式一*/
    String hql = "select p from Province as p where p.id=?";
    Query query = session.createQuery(hql);
    query.setString(0, id);
    Province p = (Province)query.list().get(0);
    session.delete(p);
    /*方式二*/
    String hql = "delete Province where id=?";
    Query query = session.createQuery(hql);
    query.setString(0, id);
    int x = query.executeUpdate();
    if(x>0){
      flag = true;
    }
    /*方式三*/
    Province p = (Province)session.get(Province.class, id);
    session.delete(p);

    方式一相對比較笨重。

    方式二中的Hql語句不要加as + 別名!

    方式三是Hibernate自帶的方法。

    20. 查詢表中的某些字段:

    方法一:給這個類新建一個構造方法,傳進去你想要的參數(shù),然后hql語句可以這樣寫:

    select new Class(c.name, c.date, c.sex) from Class

    方法二:用JDBCsql語句:

    Session.createSQLQuery(sql);

    posted on 2011-04-22 20:37 王康 閱讀(4079) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 一二三四在线播放免费观看中文版视频| 中国一级毛片免费看视频| 最好看最新的中文字幕免费| 国产亚洲精品资源在线26u| 亚洲免费无码在线| 中文字幕亚洲综合久久菠萝蜜| 理论秋霞在线看免费| 亚洲日本在线观看视频| a级片免费观看视频| 亚洲av无码乱码国产精品fc2| 久久青草免费91线频观看不卡 | 日韩免费高清视频| 国产成人精品日本亚洲语音| 免费不卡中文字幕在线| 久久精品成人免费观看97| 亚洲日韩激情无码一区| 无码国产精品一区二区免费16| 91亚洲精品第一综合不卡播放| 99久久精品日本一区二区免费 | 久久99亚洲综合精品首页| 在线视频网址免费播放| 亚洲最新永久在线观看| 国产精品视频永久免费播放| 国内成人精品亚洲日本语音| 国产亚洲精品免费视频播放| 无码国产精品一区二区免费3p| 亚洲最大成人网色香蕉| mm1313亚洲精品无码又大又粗| a毛片在线看片免费| 亚洲欧洲国产成人精品| 波多野结衣中文一区二区免费| 三级黄色免费观看| 亚洲人成在久久综合网站| 免费观看午夜在线欧差毛片 | 97在线观免费视频观看| 亚洲AV成人无码久久WWW| 亚洲av无码精品网站| 德国女人一级毛片免费| 91成人免费福利网站在线| 日韩亚洲国产高清免费视频| 亚洲国产精品专区在线观看|