Hibernate 的應(yīng)用2 —— 基本查詢及 HQL 語(yǔ)句

Session 對(duì)象的 .createQuery("HQL語(yǔ)句") 可獲取 Query 對(duì)象

Query query = session.createQuery("HQL語(yǔ)句");
  • 此外,將 HQL 查詢語(yǔ)句編寫(xiě)在關(guān)系映射文件時(shí)斤吐,在程序中通過(guò) Session 對(duì)象的 .getNameQuery(String nameQuery) 方法獲取對(duì)應(yīng)查詢語(yǔ)句的 Query 對(duì)象站粟,稱(chēng)為 —— 命名查詢
  • Query 對(duì)象的 .setFirstResult(int startIndex).setMaxResult(int num) 方法結(jié)合使用可實(shí)現(xiàn)分頁(yè)功能
  • Query 對(duì)象的 .list() 返回 List黍图,.iterate() 返回 Iterator 迭代器,.uniqueResult() 返回單個(gè)持久化對(duì)象
  • Query 對(duì)象的 .executeUpdate() 可用于執(zhí)行更新或者刪除(包括批量)
    // 更新
    String hql="update Account set password='123456' where id=:id";
    Query query=session.createQuery(hql);
    query.setInteger("id", 1);
    int i=query.executeUpdate();
    
    // 刪除
    String hql = "DELETE  Student  WHERE name LIKE :ln";
    Query query = session.createQuery(hql);
    int count = query.executeUpdate();
    
  • HQL 參數(shù)綁定
    // 使用 ?
    String hql="from Student a where a.id=? and a.stuName=?";
              
    Query query=session.createQuery(hql);
    query.setInteger(0, 3);
    query.setString(1, "wangwu");
    List<Student> list=(List<Student>)query.list();
    
    // 使用名稱(chēng)
    String hql="from Student a where a.id=:id and a.stuName=:name";
              
    Query query=session.createQuery(hql);
    query.setInteger("id", 3);
    query.setString("name", "wangwu");
    List<Student> list=(List<Student>)query.list();
    
  • HQL 語(yǔ)句:普通查詢
    from Student
    
  • HQL 語(yǔ)句:投影查詢(即查詢類(lèi)的某幾個(gè)屬性)
    SELECT id,name FROM Student
    
  • HQL 語(yǔ)句:投影查詢(即查詢類(lèi)的某幾個(gè)屬性)
    select new Student(a.stuName,a.age) from Student a
    
  • HQL 語(yǔ)句:設(shè)置別名
    // AS 可省略
    select stu.id, stu.name from Student AS stu
    
  • HQL 語(yǔ)句:條件查詢
    在 where 子句中可以指定:
    • . 號(hào)
    • 比較運(yùn)算符:=奴烙、>助被、>=、<切诀、<=揩环、<> 、is null 幅虑、is not null
    • 范圍運(yùn)算符:in (值1, 值2 …) :等于列表中的某一個(gè)值丰滑、not in(值1, 值2 …) :不等于列表中的任意一個(gè)值、between 值1 and 值2 :在值1到值2的范圍內(nèi)(包括值1和值2)翘单、not between 值1 and 值2 :不在值1到值2的范圍內(nèi)
    • 字符串模式匹配: like '字符串模式' (字符串模式中可用“%”代表任意長(zhǎng)度的字符串吨枉,“_”代表任意單個(gè)字符)
    • 邏輯運(yùn)算: and (與)、 or (或)哄芜、not (非)
    • 用于集合的運(yùn)算符:is empty貌亭、is not empty
    from Student a where a.id not between 3 and 5
    
  • HQL 語(yǔ)句:去掉重復(fù)記錄
    select distinct s.age,s.stuName from Student s
    
  • HQL 語(yǔ)句:對(duì)結(jié)果進(jìn)行排序
    // 默認(rèn)為升序
    FROM  Student  AS  s ORDER BY  s.id  DESC
    
  • HQL 語(yǔ)句:HQL 函數(shù)
    HQL 常見(jiàn)函數(shù):
    • 字符串相關(guān):upper(s)lower(s) 认臊、concat(s1, s2) 圃庭、substring(s,offset,length)length(s) 失晴、trim([[both|leading|trailing] char [from]] s) 剧腻、locate(search, s, offset)
    • 數(shù)字相關(guān):abs(n)sqrt(n) 涂屁、mod(dividend, divisor)
    • 集合相關(guān):size(c)
    • 日期時(shí)間相關(guān):current_date() 书在、 current_time()current_timestamp() 返回?cái)?shù)據(jù)庫(kù)系統(tǒng)的日期拆又、時(shí)間儒旬、時(shí)間戳,year(d) 帖族、month(d) 栈源、day(d)hour(d) 竖般、minute(d) 甚垦、second(d) 從指定的參數(shù)中提取相應(yīng)的值
    select new Student(upper(s.stuName)) from Student s
    
  • HQL 語(yǔ)句:聚合函數(shù)
    count()avg() 涣雕、 sum() 艰亮、 max()min()
    select min(s.age) from Student s
    
  • HQL 語(yǔ)句:分組函數(shù)
    group by 胞谭、 having
    select count(s.id),s.clazz from Student s group by s.clazz having avg(s.age)>20
    
    SELECT  s.grade, COUNT(*)  FROM  Student  AS  s GROUP BY  s.grade
    
    SELECT  s.grade  FROM  Student  AS  s GROUP BY  s.grade HAVING  COUNT(s.id) > 20
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垃杖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丈屹,更是在濱河造成了極大的恐慌调俘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旺垒,死亡現(xiàn)場(chǎng)離奇詭異彩库,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)先蒋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)骇钦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人竞漾,你說(shuō)我怎么就攤上這事眯搭】妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵鳞仙,是天一觀的道長(zhǎng)寇蚊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)棍好,這世上最難降的妖魔是什么仗岸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮借笙,結(jié)果婚禮上扒怖,老公的妹妹穿的比我還像新娘。我一直安慰自己业稼,他們只是感情好盗痒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著盼忌,像睡著了一般积糯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谦纱,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天看成,我揣著相機(jī)與錄音,去河邊找鬼跨嘉。 笑死川慌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祠乃。 我是一名探鬼主播梦重,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亮瓷!你這毒婦竟也來(lái)了琴拧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘱支,失蹤者是張志新(化名)和其女友劉穎蚓胸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體除师,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沛膳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汛聚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锹安。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叹哭,到底是詐尸還是另有隱情忍宋,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布风罩,位于F島的核電站讶踪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泊交。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一柱查、第九天 我趴在偏房一處隱蔽的房頂上張望廓俭。 院中可真熱鬧,春花似錦唉工、人聲如沸研乒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)雹熬。三九已至,卻和暖如春谣膳,著一層夾襖步出監(jiān)牢的瞬間竿报,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工继谚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烈菌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓花履,卻偏偏與公主長(zhǎng)得像芽世,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诡壁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法济瓢,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法妹卿,繼承相關(guān)的語(yǔ)法旺矾,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,639評(píng)論 18 399
  • 本文包括:1纽帖、Hibernate 的查詢方式2宠漩、HQL (Hibernate Query Language) 查詢...
    廖少少閱讀 2,658評(píng)論 0 15
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評(píng)論 0 11
  • 通道已全面開(kāi)通啦 微信掃碼,支付寶掃碼,公眾號(hào),支付寶wap, 通道已全面開(kāi)通啦 微信掃碼,支付寶掃碼,公眾號(hào),支...
    07ca893504f5閱讀 445評(píng)論 0 0
  • 西風(fēng)烈,西風(fēng)催斷離人淚懊直; 離人淚扒吁,離人心向故鄉(xiāng)月; 故鄉(xiāng)月,故鄉(xiāng)安召歸魂雁雕崩; 歸魂雁魁索,歸魂豈礪西風(fēng)烈。 西風(fēng)烈盼铁,西...
    loveneface閱讀 967評(píng)論 0 50