扒开老师双腿猛进入白浆小说,熟女人妻私密按摩内射,成人A片激情免费视频,亚洲欧洲AV无码区玉蒲区

當(dāng)前位置: > 投稿>正文

hibernate中文翻譯,hibernate是什么意思,hibernate發(fā)音、用法及例句

2025-08-30 投稿

hibernate中文翻譯,hibernate是什么意思,hibernate發(fā)音、用法及例句

1、hibernate

hibernate發(fā)音

英:[?ha?b?rne?t]  美:[?ha?b?ne?t]

英:  美:

hibernate中文意思翻譯

常用釋義:冬眠

n.(Hibernate)開放源代碼的對象關(guān)系映射框架

vi.(動(dòng)物或植物)過冬,冬眠;(人)蟄居,不活動(dòng)

hibernate變形

第三人稱單數(shù)--hibernates;現(xiàn)在分詞--hibernating;過去式--hibernated;過去分詞--hibernated。

hibernate雙語使用場景

1、With Hibernate, you take an existing model and an existing schema and express a map between them using annotations or XML.───通過Hibernate,您可獲取現(xiàn)有的模型和模式并使用注釋或XML表達(dá)二者之間的映射。

2、InfoQ: The specification is quite heavily influenced by the Hibernate Validation but the group concept seems to be something of a departure.───InfoQ:規(guī)范受Hibernate驗(yàn)證框架的影響比較大,但是組的概念似乎不是。

3、My current pet name for her is "bear" because she has to hibernate every night.───我現(xiàn)在給她的愛稱是“熊熊”,因?yàn)樗刻焱砩隙家摺?/p>

4、Also be aware that this feature bypasses Hibernate's usual optimistic locking strategy for versioned data.───此外,還要注意,該特性會(huì)繞過Hibernate對版本數(shù)據(jù)(versioneddata)的常用樂觀鎖策略。

5、Millions of butterflies hibernate in trees and wake up in March to fly to the north, the United States.───蝴蝶在樹木休眠和喚醒三月高達(dá)數(shù)以百萬計(jì)飛往北方,美國。

6、You could install the Hibernate plug-in, or do as the error message tells you and set def transactional = false in your integration test.───您可以安裝Hibernate插件,或者按照錯(cuò)誤消息的指示在集成測試中設(shè)置deftransactional=false。

7、With Hibernate, you can define an HQL query in a Hibernate mapping file (hbm. xml) and give it a name.───使用Hibernate,可以在Hibernate映射文件(hbm.xml)中定義HQL查詢并為其命名。

8、hibernate in caves.───里冬眠。

9、When the winter winds blow, some of us would rather hibernate than work out.───當(dāng)冬天的風(fēng)吹來的時(shí)候,我們中的一些人寧愿冬眠也不愿出去工作。

hibernate相似詞語短語

1、hibernator───冬眠動(dòng)物

2、hibernates───冬眠

3、hibernal───adj.寒冷的;冬天的

4、hibernated───v.過冬,(動(dòng)物)冬眠(hibernate的過去式和過去分詞)

5、hibernacle───n.動(dòng)物冬眠的地方

6、cybernate───vt.使電腦化;vi.電腦化,自動(dòng)控制化

7、hibernize───冬眠

8、hibernise───冬眠

9、to hibernate───冬眠

2、hibernate優(yōu)化方案

 一 批量修改和刪除

 在Hibernate 中 如果需要對任何數(shù)據(jù)進(jìn)行修改和刪除操作 都需要先執(zhí)行查詢操作 在得到要修改或者刪除的數(shù)據(jù)后 再對該數(shù)據(jù)進(jìn)行相應(yīng)的操作處理 在數(shù)據(jù)量少的情況下采用這種處理方式?jīng)]有問題 但需要處理大量數(shù)據(jù)的時(shí)候就可能存在以下的問題

 占用大量的內(nèi)存

 需要多次執(zhí)行update/delete語句 而每次執(zhí)行只能處理一條數(shù)據(jù)

 以上兩個(gè)問題的出現(xiàn)會(huì)嚴(yán)重影響系統(tǒng)的性能 因此 在Hibernate 中引入了用于批量更新或者刪除數(shù)據(jù)的HQL語句 這樣 開發(fā)人員就可以一次更新或者刪除多條記錄 而不用每次都一個(gè)一個(gè)地修改或者刪除記錄了

 如果要?jiǎng)h除所有的User對象(也就是User對象所對應(yīng)表中的記錄) 則可以直接使用下面的HQL語句

 delete User

 而在執(zhí)行這個(gè)HQL語句時(shí) 需要調(diào)用Query對象的executeUpdate()方法 具體的實(shí)例如下所示

 String HQL= delete User ;

 Query query=session createQuery(HQL);

 int size=query executeUpdate();

 采用這種方式進(jìn)行數(shù)據(jù)的修改和刪除時(shí)與直接使用JDBC的方式在性能上相差無幾 是推薦使用的正確方法

 如果不能采用HQL語句進(jìn)行大量數(shù)據(jù)的修改 也就是說只能使用取出再修改的方式時(shí) 也會(huì)遇到批量插入時(shí)的內(nèi)存溢出問題 所以也要采用上面所提供的處理方法來進(jìn)行類似的處理

 二 使用SQL執(zhí)行批量操作

 在進(jìn)行批量插入 修改和刪除操作時(shí) 直接使用JDBC來執(zhí)行原生態(tài)的SQL語句無疑會(huì)獲得最佳的性能 這是因?yàn)樵谔幚淼倪^程中省略或者簡化了以下處理內(nèi)容

 ● HQL語句到SQL語句的轉(zhuǎn)換

 ● Java對象的初始化

 ● Java對象的緩存處理

 但是在直接使用JDBC執(zhí)行SQL語句時(shí) 有一個(gè)最重要的問題就是要處理緩存中的Java對象 因?yàn)橥ㄟ^這種底層方式對數(shù)據(jù)的修改將不能通知緩存去進(jìn)行相應(yīng)的更新操作 以保證緩存中的對象與數(shù)據(jù)庫中的數(shù)據(jù)是一致的

 三 提升數(shù)據(jù)庫查詢的性能

 數(shù)據(jù)庫查詢性能的提升也是涉及到開發(fā)中的各個(gè)階段 在開發(fā)中選用正確的查詢方法無疑是最基礎(chǔ)也最簡單的

  SQL語句的優(yōu)化

 使用正確的SQL語句可以在很大程度上提高系統(tǒng)的查詢性能 獲得同樣數(shù)據(jù)而采用不同方式的SQL語句在性能上的差距可能是十分巨大的

 由于Hibernate是對JDBC的封裝 SQL語句的產(chǎn)生都是動(dòng)態(tài)由Hibernate自動(dòng)完成的 Hibernate產(chǎn)生SQL語句的方式有兩種 一種是通過開發(fā)人員編寫的HQL語句來生成 另一種是依據(jù)開發(fā)人員對關(guān)聯(lián)對象的訪問來自動(dòng)生成相應(yīng)的SQL語句

 至于使用什么樣的SQL語句可以獲得更好的性能要依據(jù)數(shù)據(jù)庫的結(jié)構(gòu)以及所要獲取數(shù)據(jù)的具體情況來進(jìn)行處理 在確定了所要執(zhí)行的SQL語句后 可以通過以下三個(gè)方面來影響Hibernate所生成的SQL語句

 HQL語句的書寫方法

 查詢時(shí)所使用的查詢方法

 對象關(guān)聯(lián)時(shí)所使用的抓取策略

  使用正確的查詢方法

 在前面已經(jīng)介紹過 執(zhí)行數(shù)據(jù)查詢功能的基本方法有兩種 一種是得到單個(gè)持久化對象的get()方法和load()方法 另一種是Query對象的list()方法和iterator()方法 在開發(fā)中應(yīng)該依據(jù)不同的情況選用正確的方法

 get()方法和load()方法的區(qū)別在于對二級緩存的使用上 load()方法會(huì)使用二級緩存 而get()方法在一級緩存沒有找到的情況下會(huì)直接查詢數(shù)據(jù)庫 不會(huì)去二級緩存中查找 在使用中 對使用了二級緩存的對象進(jìn)行查詢時(shí)最好使用load()方法 以充分利用二級緩存來提高檢索的效率

 list()方法和iterator()方法之間的區(qū)別可以從以下幾個(gè)方面來進(jìn)行比較

 執(zhí)行的查詢不同

 list()方法在執(zhí)行時(shí) 是直接運(yùn)行查詢結(jié)果所需要的查詢語句 而iterator()方法則是先執(zhí)行得到對象ID的查詢 然后再根據(jù)每個(gè)ID值去取得所要查詢的對象 因此 對于list()方式的查詢通常只會(huì)執(zhí)行一個(gè)SQL語句 而對于iterator()方法的查詢則可能需要執(zhí)行N+ 條SQL語句(N為結(jié)果集中的記錄數(shù))

 iterator()方法只是可能執(zhí)行N+ 條數(shù)據(jù) 具體執(zhí)行SQL語句的數(shù)量取決于緩存的情況以及對結(jié)果集的訪問情況

 緩存的使用

 list()方法只能使用二級緩存中的查詢緩存 而無法使用二級緩存對單個(gè)對象的緩存(但是會(huì)把查詢出的對象放入二級緩存中) 所以 除非重復(fù)執(zhí)行相同的查詢操作 否則無法利用緩存的機(jī)制來提高查詢的效率

 iterator()方法則可以充分利用二級緩存 在根據(jù)ID檢索對象的時(shí)候會(huì)首先到緩存中查找 只有在找不到的情況下才會(huì)執(zhí)行相應(yīng)的查詢語句 所以 緩存中對象的存在與否會(huì)影響到SQL語句的執(zhí)行數(shù)量

 對于結(jié)果集的處理方法不同

 list()方法會(huì)一次獲得所有的結(jié)果集對象 而且它會(huì)依據(jù)查詢的結(jié)果初始化所有的結(jié)果集對象 這在結(jié)果集非常大的時(shí)候必然會(huì)占據(jù)非常多的內(nèi)存 甚至?xí)斐蓛?nèi)存溢出情況的發(fā)生

 iterator()方法在執(zhí)行時(shí)不會(huì)一次初始化所有的對象 而是根據(jù)對結(jié)果集的訪問情況來初始化對象 因此在訪問中可以控制緩存中對象的數(shù)量 以避免占用過多緩存 導(dǎo)致內(nèi)存溢出情況的發(fā)生 使用iterator()方法的另外一個(gè)好處是 如果只需要結(jié)果集中的部分記錄 那么沒有被用到的結(jié)果對象根本不會(huì)被初始化 所以 對結(jié)果集的訪問情況也是調(diào)用iterator()方法時(shí)執(zhí)行數(shù)據(jù)庫SQL語句多少的一個(gè)因素

 所以 在使用Query對象執(zhí)行數(shù)據(jù)查詢時(shí)應(yīng)該從以上幾個(gè)方面去考慮使用何種方法來執(zhí)行數(shù)據(jù)庫的查詢操作

 四 使用正確的抓取策略

 所謂抓取策略(fetching strategy)是指當(dāng)應(yīng)用程序需要利用關(guān)聯(lián)關(guān)系進(jìn)行對象獲取的時(shí)候 Hibernate獲取關(guān)聯(lián)對象的策略 抓取策略可以在O/R映射的元數(shù)據(jù)中聲明 也可以在特定的HQL或條件查詢中聲明

 Hibernate 定義了以下幾種抓取策略

 連接抓取(Join fetching)

 連接抓取是指Hibernate在獲得關(guān)聯(lián)對象時(shí)會(huì)在SELECT語句中使用外連接的方式來獲得關(guān)聯(lián)對象

 查詢抓取(Select fetching)

 查詢抓取是指Hibernate通過另外一條SELECT語句來抓取當(dāng)前對象的關(guān)聯(lián)對象的方式 這也是通過外鍵的方式來執(zhí)行數(shù)據(jù)庫的查詢 與連接抓取的區(qū)別在于 通常情況下這個(gè)SELECT語句不是立即執(zhí)行的 而是在訪問到關(guān)聯(lián)對象的時(shí)候才會(huì)執(zhí)行

 子查詢抓取(Subselect fetching)

 子查詢抓取也是指Hibernate通過另外一條SELECT語句來抓取當(dāng)前對象的關(guān)聯(lián)對象的方式 與查詢抓取的區(qū)別在于它所采用的SELECT語句的方式為子查詢 而不是通過外連接

 批量抓取(Batch fetching)

 批量抓取是對查詢抓取的優(yōu)化 它會(huì)依據(jù)主鍵或者外鍵的列表來通過單條SELECT語句實(shí)現(xiàn)管理對象的批量抓取

 以上介紹的是Hibernate 所提供的抓取策略 也就是抓取關(guān)聯(lián)對象的手段 為了提升系統(tǒng)的性能 在抓取關(guān)聯(lián)對象的時(shí)機(jī)上 還有以下一些選擇

 立即抓取(Immediate fetching)

 立即抓取是指宿主對象被加載時(shí) 它所關(guān)聯(lián)的對象也會(huì)被立即加載

 延遲集合抓取(Lazy collection fetching)

 延遲集合抓取是指在加載宿主對象時(shí) 并不立即加載它所關(guān)聯(lián)的對象 而是到應(yīng)用程序訪問關(guān)聯(lián)對象的時(shí)候才抓取關(guān)聯(lián)對象 這是集合關(guān)聯(lián)對象的默認(rèn)行為

 延遲代理抓取(Lazy proxy fetching)

 延遲代理抓取是指在返回單值關(guān)聯(lián)對象的情況下 并不在對其進(jìn)行g(shù)et操作時(shí)抓取 而是直到調(diào)用其某個(gè)方法的時(shí)候才會(huì)抓取這個(gè)對象

 延遲屬性加載(Lazy attribute fetching)

 延遲屬性加載是指在關(guān)聯(lián)對象被訪問的時(shí)候才進(jìn)行關(guān)聯(lián)對象的抓取

 介紹了Hibernate所提供的關(guān)聯(lián)對象的抓取方法和抓取時(shí)機(jī) 這兩個(gè)方面的因素都會(huì)影響Hibernate的抓取行為 最重要的是要清楚這兩方面的影響是不同的 不要將這兩個(gè)因素混淆 在開發(fā)中要結(jié)合實(shí)際情況選用正確的抓取策略和合適的抓取時(shí)機(jī)

 抓取時(shí)機(jī)的選擇

 在Hibernate 中 對于集合類型的關(guān)聯(lián)在默認(rèn)情況下會(huì)使用延遲集合加載的抓取時(shí)機(jī) 而對于返回單值類型的關(guān)聯(lián)在默認(rèn)情況下會(huì)使用延遲代理抓取的抓取時(shí)機(jī)

 對于立即抓取在開發(fā)中很少被用到 因?yàn)檫@很可能會(huì)造成不必要的數(shù)據(jù)庫操作 從而影響系統(tǒng)的性能 當(dāng)宿主對象和關(guān)聯(lián)對象總是被同時(shí)訪問的時(shí)候才有可能會(huì)用到這種抓取時(shí)機(jī) 另外 使用立即連接抓取可以通過外連接來減少查詢SQL語句的數(shù)量 所以 也會(huì)在某些特殊的情況下使用

 然而 延遲加載又會(huì)面臨另外一個(gè)問題 如果在Session關(guān)閉前關(guān)聯(lián)對象沒有被實(shí)例化 那么在訪問關(guān)聯(lián)對象的時(shí)候就會(huì)拋出異常 處理的方法就是在事務(wù)提交之前就完成對關(guān)聯(lián)對象的訪問

 所以 在通常情況下都會(huì)使用延遲的方式來抓取關(guān)聯(lián)的對象 因?yàn)槊總€(gè)立即抓取都會(huì)導(dǎo)致關(guān)聯(lián)對象的立即實(shí)例化 太多的立即抓取關(guān)聯(lián)會(huì)導(dǎo)致大量的對象被實(shí)例化 從而占用過多的內(nèi)存資源

 抓取策略的選取

 對于抓取策略的選取將影響到抓取關(guān)聯(lián)對象的方式 也就是抓取關(guān)聯(lián)對象時(shí)所執(zhí)行的SQL語句 這就要根據(jù)實(shí)際的業(yè)務(wù)需求 數(shù)據(jù)的數(shù)量以及數(shù)據(jù)庫的結(jié)構(gòu)來進(jìn)行選擇了

 在這里需要注意的是 通常情況下都會(huì)在執(zhí)行查詢的時(shí)候針對每個(gè)查詢來指定對其合適的抓取策略 指定抓取策略的方法如下所示

 User user = (User) session createCriteria(User class)

  setFetchMode( permissions FetchMode JOIN)

  add( Restrictions idEq(userId) )

  uniqueResult();

 五 查詢性能提升小結(jié)

 在本小節(jié)中介紹了查詢性能提升的方法 關(guān)鍵是如何通過優(yōu)化SQL語句來提升系統(tǒng)的查詢性能 查詢方法和抓取策略的影響也是通過執(zhí)行查詢方式和SQL語句的多少來改變系統(tǒng)的性能的 這些都屬于開發(fā)人員所應(yīng)該掌握的基本技能 避免由于開發(fā)不當(dāng)而導(dǎo)致系統(tǒng)性能的低下

 在性能調(diào)整中 除了前面介紹的執(zhí)行SQL語句的因素外 對于緩存的使用也會(huì)影響系統(tǒng)的性能 通常來說 緩存的使用會(huì)增加系統(tǒng)查詢的性能 而降低系統(tǒng)增加 修改和刪除操作的性能(因?yàn)橐M(jìn)行緩存的同步處理) 所以 開發(fā)人員應(yīng)該能夠正確地使用有效的緩存來提高數(shù)據(jù)查詢的性能 而要避免濫用緩存而導(dǎo)致的系統(tǒng)性能變低 在采用緩存的時(shí)候也應(yīng)該注意調(diào)整自己的檢索策略和查詢方法 這三者配合起來才可以達(dá)到最優(yōu)的性能

lishixinzhi/Article/program/Java/ky/201311/28720

本站其他內(nèi)容推薦

版權(quán)聲明: 本站僅提供信息存儲(chǔ)空間服務(wù),旨在傳遞更多信息,不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任,不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如因作品內(nèi)容、版權(quán)和其它問題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。