亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

HQL數據查詢基礎

難度中級
時長 1小時41分
學習人數
綜合評分9.77
301人評價 查看評價
9.9 內容實用
9.8 簡潔易懂
9.6 邏輯清晰
  • HQL對關鍵字大小寫不敏感

    查看全部
  • HQL語句面向對象的查詢語句,面向持久化對象和屬性,大小寫敏感

    查看全部
  • 使用order by子句對查詢結果進行排序

    • 升序 asc

    • 降序 desc

    "from?Commodity?order?by?price?asc"
    "from?Commodity?order?by?seller.id?asc,price?desc,name?asc"

    有多個排序條件時,優先級依次降低

    查看全部
    0 采集 收起 來源:orderby子句

    2019-04-06

  • 使用Query的uniqueResult方法查詢結果是單個對象,但使用時必須確保,查詢結果是1個或0個。

    查看全部
    0 采集 收起 來源:查詢單個對象

    2019-04-06

  • 在where和select子句中可以使用四則運算 + ?- ?× ÷

    查看全部
    0 采集 收起 來源:四則運算

    2019-04-06

  • 集合運算 set?

    1. is [not] empty 集合[不]為空,不包含任何元素

    2. member of 元素屬于集合

    HQL
    對應SQL
    emptyexists
    member ofin
    "from?Order?o?where?o.orderItems?is?not?empty"


    查看全部
    0 采集 收起 來源:集合運算

    2019-04-06

  • 邏輯運算

    and (與)、 or(或) 、 not(非)

    查看全部
    0 采集 收起 來源:邏輯運算

    2019-04-06

  • 字符串模式匹配

    1. like 關鍵字

    2. 通配符 %、_ ? ( %表示任意個字符 ?_表示任意一個字符?)

    //匹配姓“張”,且名字總共只有2個字的
    "from?Customer?c?where?c.name?like?'張_'"
    //匹配“北京”,位置不固定
    "from?Customer?c?where?c.address?like?'%北京%'"


    查看全部
  • where子句中的范圍運算

    1. [not] in ( 列表 )

    2. [not] between 值1 ?and ?值2

    查看全部
    0 采集 收起 來源:范圍運算

    2019-04-06

  • where子句中的比較運算符

    1. =、<>、 <、 >、 >=、 <=

    2. null值判斷: is [not] null ?或 <>null 、=null

    查看全部
    0 采集 收起 來源:比較運算

    2019-04-06

  • distinct關鍵字,去除查詢結果中多余的重復元素。

    "select?distinct?c.sex?from?Customer?c"


    查看全部
  • 以自定義類型返回查詢結果:

    1、在持久類中定義對應參數的構造方法

    2、在select語句中使用構造方法

    String?hql?=?"select?new?Seller(s.name?as?name,s.tel)?from?Seller?s";		
    Query?query?=?session.createQuery(hql);		
    List<Seller>?sellers?=?query.list();		
    for?(Seller?s?:?sellers)?{			
    ????System.out.println(s);					
    }

    注意:此時仍然需要定義無參的構造函數,否則“from Seller”將會失敗。

    查看全部
  • 以Map形式返回查詢結果:new map(...)

    Map的key是默認查詢語句中對應的位置信息,但是String類型。

    可以通過別名的方式修改key。

    String?hql?=?"select?new?map(s.name,s.tel)?from?Seller?s";
    String?hql?=?"select?new?map(s.name?as?name,s.tel)?from?Seller?as?s";
    Query?query?=?session.createQuery(hql);		
    List<Map>?maps?=?query.list();
    for?(Map?m?:?maps)?{			
    ????System.out.println(m.get("0"));
    ????//System.out.println(m.get("name"));//使用別名
    ????ystem.out.println(m.get("1"));		
    }


    查看全部
  • ?以List形式返回查詢結果 : new list(...)

    String?hql?=?"select?new?list(s.name,s.tel)?from?Seller?s";

    查詢結果:

    List<List>?list?=?query.list();


    查看全部
  • HQL查詢一個持久類中的部分字段:

    String?hql?=?"select?s.name,s.tel?from?Seller?s";

    此時,查詢結果為對象數組:

    List<Object[]>?objs?=?query.list();

    注意:當僅指定一個字段時,返回的是對象而不是對象數組。

    查看全部

舉報

0/150
提交
取消
課程須知
本課程是Hibernate進階課程,需要小伙伴們了解Hibernate映射配置知識點,對這方面內容不了解的小伙伴們可以先去《 Hibernate初探之單表映射》進修一下~~
老師告訴你能學到什么?
1、什么是HQL,以及HQL的語句形式。 2、在Hibernate框架中如何執行HQL查詢。 3、如何編寫出正確的HQL查詢語句,從數據庫檢索到我們想要的數據。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!