第三次課
Hibernate的關(guān)聯(lián)映射
many-to-ont關(guān)聯(lián)
one-to-many關(guān)聯(lián)
many-to-many關(guān)聯(lián)
配置文件兩個(gè)核心關(guān)鍵字:
inverse控制反轉(zhuǎn),誰(shuí)管理誰(shuí)(控制權(quán))嘀掸,如果為true表示由對(duì)方負(fù)責(zé)關(guān)聯(lián)關(guān)系的添加和刪除
為false表示由自己負(fù)責(zé)維護(hù)關(guān)聯(lián)關(guān)系
cascade實(shí)現(xiàn)自動(dòng)級(jí)聯(lián)刪除(先刪子表后刪父表)剖煌,屬性有all,none,save-updat(執(zhí)行更新操作時(shí)級(jí)聯(lián)),delete(刪除時(shí)級(jí)聯(lián))
第四次課
Hibernate 的【檢索策略】
立即檢索策略
延遲檢索策略
迫切左外鏈接檢索策略
Hibernate的【檢索方式】
1东囚、【HQL】檢索方式:?
Query對(duì)象触趴,寫(xiě)hql語(yǔ)句實(shí)現(xiàn)查詢
hql語(yǔ)言與sql語(yǔ)言很相似,但最大的區(qū)別是sql操作數(shù)據(jù)庫(kù)表和字段拼窥,hql操作實(shí)體類和屬性
使用hql查詢操作時(shí)候抛人,使用Query對(duì)象
【步驟如下】:
(1)調(diào)用Session的createQuery()創(chuàng)建query對(duì)象
(2)動(dòng)態(tài)綁定數(shù)據(jù)
(3)調(diào)用Query的list()方法執(zhí)行查詢語(yǔ)句
A、查詢所有
? ? (1)創(chuàng)建query對(duì)象
????Query query = session.createQuery("from 實(shí)體類")糜芳;
????(2)調(diào)用方法得到結(jié)果
????List<泛型實(shí)體類> list = query.list()
B飒货、條件查詢
? ?(1)創(chuàng)建query對(duì)象
????Query query = session.createQuery("from 實(shí)體類
????????????????where 實(shí)體類的屬性 = ? and 實(shí)體類的屬性 = 峭竣?
? ? ? ? ? ? ? ? where 實(shí)體類的屬性 like ?????")塘辅;
? ? (2)設(shè)置條件值,給皆撩?設(shè)值扣墩,從0開(kāi)始【動(dòng)態(tài)綁定參數(shù)】
? ? ? ? ? 第一個(gè)參數(shù)是int類型是?位置? ?
? ? ? ? //=查詢
? ? ????query.setParameter(0,1)
? ? ? ? query.setParameter(1扛吞,“百度”)
? ? ????//like的模糊查詢
? ???????query.setParameter(0,‘“%周%”)
? ? (3)調(diào)用方法得到結(jié)果
???????List<泛型實(shí)體類> list = query.list()呻惕;
C、升序降序查詢
??Query query = session.createQuery(“from 實(shí)體類 order by 屬性 ASC/DESC”)滥比;
??List<泛型實(shí)體類> list = query.list()亚脆;
E、分頁(yè)查詢【不能寫(xiě)limit盲泛,因?yàn)閔ql語(yǔ)句不認(rèn)識(shí)limit
而是用query里面的兩個(gè)方法實(shí)現(xiàn)分頁(yè)】
(1)?查詢所有再做分頁(yè)
????Query query = session.createQuery(“from 實(shí)體類”)濒持;
(2)設(shè)置分頁(yè)數(shù)據(jù),開(kāi)始位置
????query.setFirstResult(0);
設(shè)置每頁(yè)顯示的記錄數(shù)
????query.setMaxResults(3);
(3) List<泛型實(shí)體類> list = query.list()查乒;
?2弥喉、【QBC】檢索方式:
[使用Criteria對(duì)象和Expression類提供靜態(tài)方法
不需要寫(xiě)語(yǔ)句了,使用方法實(shí)現(xiàn)
操作實(shí)體類和對(duì)象]
【步驟如下】:
(1)調(diào)用Session的createCriteria()創(chuàng)建criteria對(duì)象
(2)設(shè)定查詢條件玛迄。Critearia的add()方法加入查詢條件
(3)調(diào)用Critearia的list()方法執(zhí)行查詢語(yǔ)句
3由境、【本地SQL】檢索方式
4、導(dǎo)航對(duì)象圖檢索方式
5蓖议、IOD檢索方式
SQL多表查詢