![SSH企業(yè)培訓(xùn)之?dāng)?shù)據(jù)抓取策略與高速緩存ppt課件_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/ed7fb409-1316-4a47-aad7-4696892a45c5/ed7fb409-1316-4a47-aad7-4696892a45c51.gif)
![SSH企業(yè)培訓(xùn)之?dāng)?shù)據(jù)抓取策略與高速緩存ppt課件_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/ed7fb409-1316-4a47-aad7-4696892a45c5/ed7fb409-1316-4a47-aad7-4696892a45c52.gif)
![SSH企業(yè)培訓(xùn)之?dāng)?shù)據(jù)抓取策略與高速緩存ppt課件_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/ed7fb409-1316-4a47-aad7-4696892a45c5/ed7fb409-1316-4a47-aad7-4696892a45c53.gif)
![SSH企業(yè)培訓(xùn)之?dāng)?shù)據(jù)抓取策略與高速緩存ppt課件_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/ed7fb409-1316-4a47-aad7-4696892a45c5/ed7fb409-1316-4a47-aad7-4696892a45c54.gif)
![SSH企業(yè)培訓(xùn)之?dāng)?shù)據(jù)抓取策略與高速緩存ppt課件_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/ed7fb409-1316-4a47-aad7-4696892a45c5/ed7fb409-1316-4a47-aad7-4696892a45c55.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)抓取策略與高速緩存數(shù)據(jù)抓取策略與高速緩存 引見(jiàn)引見(jiàn)講授:講授:劉曉濤劉曉濤:lxt008163Blog:.csdn/liuxiaotao008MSN:lxt008live數(shù)據(jù)加載策略與優(yōu)化。數(shù)據(jù)加載策略與優(yōu)化。高速緩存討論高速緩存討論(含批量處理含批量處理)。對(duì)象同一性。對(duì)象同一性。復(fù)合主鍵。復(fù)合主鍵。觸發(fā)器觸發(fā)器/數(shù)據(jù)庫(kù)生成值的處理。數(shù)據(jù)庫(kù)生成值的處理。計(jì)算列的處理。計(jì)算列的處理。本章目標(biāo)本章目標(biāo)數(shù)據(jù)加載策略與優(yōu)化數(shù)據(jù)加載策略與優(yōu)化延遲加載延遲加載加載代理加載代理(往往是往往是ID),真正用到數(shù)據(jù)時(shí)才加載關(guān)聯(lián)數(shù)據(jù)。,真正用到數(shù)據(jù)時(shí)才加載關(guān)聯(lián)數(shù)據(jù)。lazy=“true”,默認(rèn)值。默認(rèn)值。即
2、時(shí)加載即時(shí)加載一條一條SQL語(yǔ)句連接查詢(xún)語(yǔ)句連接查詢(xún),fetch=“join”。兩條兩條SQL語(yǔ)句單獨(dú)查詢(xún)語(yǔ)句單獨(dú)查詢(xún),fetch=“select”。批量加載批量加載設(shè)置設(shè)置batch-size屬性。屬性。Hibernate抓取策略抓取策略1.保持默認(rèn),同保持默認(rèn),同fetch=select,如:如:fetch=select,另外發(fā)送一條另外發(fā)送一條select語(yǔ)句抓取當(dāng)前對(duì)象關(guān)聯(lián)實(shí)體或集合語(yǔ)句抓取當(dāng)前對(duì)象關(guān)聯(lián)實(shí)體或集合2.設(shè)置設(shè)置fetch=join,如:如:fetch=join,hibernate會(huì)通過(guò)會(huì)通過(guò)select語(yǔ)句使用外連接來(lái)加載其關(guān)聯(lián)實(shí)體或集合語(yǔ)句使用外連接來(lái)加載其關(guān)聯(lián)實(shí)體或集
3、合此時(shí)此時(shí)lazy會(huì)失效會(huì)失效3.保持默認(rèn),同保持默認(rèn),同fetch=select,如:如:fetch=select,另外發(fā)送一條另外發(fā)送一條select語(yǔ)句抓取當(dāng)前對(duì)象關(guān)聯(lián)實(shí)體或集合語(yǔ)句抓取當(dāng)前對(duì)象關(guān)聯(lián)實(shí)體或集合4.設(shè)置設(shè)置fetch=join,如:如:fetch=join,hibernate會(huì)通過(guò)會(huì)通過(guò)select語(yǔ)句使用外連接來(lái)加載其關(guān)聯(lián)實(shí)體或集合語(yǔ)句使用外連接來(lái)加載其關(guān)聯(lián)實(shí)體或集合此時(shí)此時(shí)lazy會(huì)失效會(huì)失效Hibernate抓取策略抓取策略5.設(shè)置設(shè)置fetch=subselect,如:如:fetch=“subselect”,另外發(fā)送一條另外發(fā)送一條select語(yǔ)句抓取在前面查詢(xún)到的
4、所有語(yǔ)句抓取在前面查詢(xún)到的所有實(shí)體對(duì)象的關(guān)聯(lián)集合實(shí)體對(duì)象的關(guān)聯(lián)集合,合適的時(shí)候使用子查詢(xún)。合適的時(shí)候使用子查詢(xún)。6.batch-szie在在上的應(yīng)用上的應(yīng)用batch-size屬性,可以批量加載實(shí)體類(lèi),參見(jiàn):屬性,可以批量加載實(shí)體類(lèi),參見(jiàn):Classes.hbm.xml7.batch-szie在集合上的應(yīng)用在集合上的應(yīng)用batch-size屬性,可以批量加載實(shí)體類(lèi),參見(jiàn):屬性,可以批量加載實(shí)體類(lèi),參見(jiàn):Classes.hbm.xmlhibernate一級(jí)緩存一級(jí)緩存一級(jí)緩存和一級(jí)緩存和session的生命周期一致的生命周期一致下面方法支持一級(jí)緩存:下面方法支持一級(jí)緩存:get()load()i
5、terate緩存實(shí)體對(duì)象而不是屬性)緩存實(shí)體對(duì)象而不是屬性)如何管理一級(jí)緩存:如何管理一級(jí)緩存:session.clear()session.evict()如何避免一次性大量的實(shí)體數(shù)據(jù)入庫(kù)導(dǎo)致內(nèi)存溢出如何避免一次性大量的實(shí)體數(shù)據(jù)入庫(kù)導(dǎo)致內(nèi)存溢出先先f(wàn)lush,再,再clear如果數(shù)據(jù)量特別大,考慮采用如果數(shù)據(jù)量特別大,考慮采用jdbc實(shí)現(xiàn),如果實(shí)現(xiàn),如果jdbc也不能滿(mǎn)足要求可也不能滿(mǎn)足要求可以考慮采用數(shù)據(jù)本身的特定導(dǎo)入工具。以考慮采用數(shù)據(jù)本身的特定導(dǎo)入工具。hibernate二級(jí)緩存二級(jí)緩存也稱(chēng)為進(jìn)程級(jí)的緩存或也稱(chēng)為進(jìn)程級(jí)的緩存或SessionFactory級(jí)緩存,可以被所有的級(jí)緩存,可以被
6、所有的session共享共享二級(jí)緩存的生命周期和二級(jí)緩存的生命周期和SessionFactory的生命周期一致。的生命周期一致。二級(jí)緩存的配置和使用:二級(jí)緩存的配置和使用:將將echcache.xml文件拷貝到文件拷貝到src下下開(kāi)啟二級(jí)緩存,修改開(kāi)啟二級(jí)緩存,修改hibernate.cfg.xml文件文件true指定緩存產(chǎn)品提供商,修改指定緩存產(chǎn)品提供商,修改hibernate.cfg.xml文件文件org.hibernate.cache.EhCacheProvider指定那些實(shí)體類(lèi)使用二級(jí)緩存兩種方法)指定那些實(shí)體類(lèi)使用二級(jí)緩存兩種方法)在映射文件中采用在映射文件中采用標(biāo)簽標(biāo)簽在在hibe
7、rnate.cfg.xml文件中,采用文件中,采用標(biāo)簽標(biāo)簽二級(jí)緩存是緩存實(shí)體對(duì)象的二級(jí)緩存是緩存實(shí)體對(duì)象的對(duì)象同一性對(duì)象同一性同一性概念同一性概念數(shù)據(jù)庫(kù)中一條記錄在內(nèi)存中應(yīng)該只有一種表示。數(shù)據(jù)庫(kù)中一條記錄在內(nèi)存中應(yīng)該只有一種表示。同一性級(jí)別同一性級(jí)別事務(wù)事務(wù)(session)級(jí)別。級(jí)別。過(guò)程過(guò)程(SessionFactory)級(jí)別多個(gè)級(jí)別多個(gè)session中保證同一性)。中保證同一性)。JVM級(jí)別。級(jí)別。分布式系統(tǒng)級(jí)別。分布式系統(tǒng)級(jí)別。Hibernate保證事務(wù)保證事務(wù)(session)級(jí)別的實(shí)體對(duì)象的同一性。其他級(jí)別的實(shí)體對(duì)象的同一性。其他級(jí)別不保證。級(jí)別不保證。復(fù)合主鍵類(lèi)需要覆蓋復(fù)合主鍵類(lèi)
8、需要覆蓋hashCode()和和equals()方法以保證對(duì)象的方法以保證對(duì)象的同一性。同一性。復(fù)合主鍵映射復(fù)合主鍵映射設(shè)計(jì)決策設(shè)計(jì)決策表最好加入一個(gè)與業(yè)務(wù)無(wú)關(guān)的列作為主鍵。表最好加入一個(gè)與業(yè)務(wù)無(wú)關(guān)的列作為主鍵。最好不使用自然鍵最好不使用自然鍵(如如User使用使用 user_name 作為主鍵作為主鍵),因?yàn)闃I(yè)務(wù)需求發(fā)生變化是很難重構(gòu)數(shù)據(jù)模型。因?yàn)闃I(yè)務(wù)需求發(fā)生變化是很難重構(gòu)數(shù)據(jù)模型。遺留數(shù)據(jù)庫(kù)可能用兩個(gè)或以上的列作為復(fù)合主鍵。遺留數(shù)據(jù)庫(kù)可能用兩個(gè)或以上的列作為復(fù)合主鍵。通常將復(fù)合主鍵相關(guān)的屬性,單獨(dú)放到一個(gè)主鍵類(lèi)中通常將復(fù)合主鍵相關(guān)的屬性,單獨(dú)放到一個(gè)主鍵類(lèi)中主鍵類(lèi)必須實(shí)現(xiàn)序列化接口主鍵類(lèi)必
9、須實(shí)現(xiàn)序列化接口(implements Serializable)。需要覆蓋需要覆蓋hashCode()和和equals()方法以保證對(duì)象的同一方法以保證對(duì)象的同一性。性。案例案例public class FiscalYearPeriod private FiscalYearPeriodPK fiscalYearPeriodPK;private Date beginDate;private Date endDate;/getXxx()/setXxx() 主鍵類(lèi)主鍵類(lèi)public class FiscalYearPeriodPK implements Serializable private i
10、nt fiscalYear; /核算年核算年private int fiscalPeriod; /核算月核算月/getXxx()/setXxx()覆蓋覆蓋hashCode()方法方法hashCode(給對(duì)象產(chǎn)生給對(duì)象產(chǎn)生OID)。Overridepublic int hashCode() final int prime = 31;int result = 1;result = prime * result + fiscalPeriod;result = prime * result + fiscalYear;return result;覆蓋覆蓋equals()方法方法Overridepubli
11、c boolean equals(Object obj) if (this = obj) return true; if (obj = null) return false; if (getClass() != obj.getClass() return false; final FiscalYearPeriodPK other = (FiscalYearPeriodPK) obj;if (fiscalPeriod != other.fiscalPeriod) return false; if (fiscalYear != other.fiscalYear) return false; ret
12、urn true;映射文件映射文件 save()session.beginTransaction(); FiscalYearPeriod fiscalYearPeriod = new FiscalYearPeriod();FiscalYearPeriodPK pk = new FiscalYearPeriodPK();pk.setFiscalYear(2021);pk.setFiscalPeriod(3);fiscalYearPeriod.setFiscalYearPeriodPK(pk); fiscalYearPeriod.setBeginDate(new Date(); fiscalYea
13、rPeriod.setEndDate(new Date(); session.save(fiscalYearPeriod); session.getTransaction()mit(); load()session.beginTransaction();FiscalYearPeriodPK pk = new FiscalYearPeriodPK();pk.setFiscalYear(2021);pk.setFiscalPeriod(3);FiscalYearPeriod fiscalYearPeriod = (FiscalYearPeriod)session.load(FiscalYearPe
14、riod.class, pk); System.out.println(fiscalYearPeriod.getPeriodSts(); session.getTransaction()mit();數(shù)據(jù)庫(kù)生成值的處理數(shù)據(jù)庫(kù)生成值的處理*update=“false” insert=“false該列不會(huì)出現(xiàn)在該列不會(huì)出現(xiàn)在insert/update語(yǔ)句中,是只讀的。語(yǔ)句中,是只讀的。* generated:立即執(zhí)行一個(gè):立即執(zhí)行一個(gè)select獲取數(shù)據(jù)庫(kù)生成的獲取數(shù)據(jù)庫(kù)生成的值值觸發(fā)器觸發(fā)器如果沒(méi)有設(shè)置如果沒(méi)有設(shè)置generated=“” ,就需要顯式地再查詢(xún):,就需要顯式地再查詢(xún):session.save(object);session.flush();session.refresh(object);/獲取觸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度婚紗禮服租賃策劃協(xié)議
- 2025年指定購(gòu)買(mǎi)化工材料中介服務(wù)合同樣本
- 2025年人力資源外包合同規(guī)范格式
- 2025年建筑施工招標(biāo)合同
- 2025年保證金支付規(guī)范合同范本
- 2025年企業(yè)人力資源租賃合同
- 2025年云計(jì)算平臺(tái)合同
- 2025年修訂保密協(xié)議指南
- 2025年藝人代理合同
- 2025年企業(yè)與職業(yè)學(xué)校人才供需協(xié)議
- 計(jì)算機(jī)文化基礎(chǔ)單元設(shè)計(jì)-windows
- 創(chuàng)建動(dòng)物保護(hù)家園-完整精講版課件
- 廣東省保安服務(wù)監(jiān)管信息系統(tǒng)用戶(hù)手冊(cè)(操作手冊(cè))
- DNA 親子鑒定手冊(cè) 模板
- DB33T 1233-2021 基坑工程地下連續(xù)墻技術(shù)規(guī)程
- 天津 建設(shè)工程委托監(jiān)理合同(示范文本)
- 廣東中小學(xué)教師職稱(chēng)評(píng)審申報(bào)表初稿樣表
- 部編一年級(jí)語(yǔ)文下冊(cè)教材分析
- 火炬及火炬氣回收系統(tǒng)操作手冊(cè)
- 北師大七年級(jí)數(shù)學(xué)下冊(cè)教學(xué)工作計(jì)劃及教學(xué)進(jìn)表
- 菜肴成本核算(課堂PPT)
評(píng)論
0/150
提交評(píng)論