日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate知识问答

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate知识问答 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1Hibernate的檢索方式

答:①導(dǎo)航對(duì)象圖檢索? ②OID檢索? ③HQL檢索? ④QBC檢索? ⑤本地SQL檢索

2 ForwardGlobal-Forward的區(qū)別

答:Forward是根據(jù)Action return的值找到對(duì)應(yīng)的JSP頁(yè)。當(dāng)多個(gè)Action共同return同一個(gè)值時(shí),可將這個(gè)Forward元素寫(xiě)在Global-Forward中。

3持久化對(duì)象的三種狀態(tài),代表含義。

答: 臨時(shí)狀態(tài)——?jiǎng)傆胣ew語(yǔ)句創(chuàng)建,未被持久化,不處于session的緩存中。

?????? ?持久化狀態(tài)——已經(jīng)被持久化,處于session的緩存中。

?????? ?游離態(tài)——已經(jīng)被持久化,但不處于session的緩存中。

4、三種檢索策略是什么,分別適用于哪種場(chǎng)合?

答:立即檢索——

優(yōu)點(diǎn):對(duì)應(yīng)用程序完全透明,缺點(diǎn):select語(yǔ)句數(shù)目多。適用:類(lèi)級(jí)別。

延遲檢索——

優(yōu)點(diǎn): 由應(yīng)用程序決定加載哪些對(duì)象,可以避免執(zhí)行多余的select語(yǔ)句以及避免加載不需要訪問(wèn)的對(duì)象,節(jié)省內(nèi)存空間,提高檢索效率。

缺點(diǎn): 應(yīng)用程序如果要訪問(wèn)游離態(tài)的代理類(lèi)實(shí)例,必須保證它在持久化時(shí)已經(jīng)被初始化。

適用: 一對(duì)多或多對(duì)多關(guān)聯(lián)。應(yīng)用程序不需要立即訪問(wèn)或者根本不會(huì)訪問(wèn)的對(duì)象。

迫切左外連接檢索:

優(yōu)點(diǎn):對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài)還是游離狀態(tài),應(yīng)用程序都可以方便的從一個(gè)對(duì)象導(dǎo)航到另一個(gè)與它相關(guān)聯(lián)的對(duì)象。使用了外連接,select語(yǔ)句數(shù)目少。

缺點(diǎn):可能會(huì)加載程序不許要訪問(wèn)的對(duì)象。復(fù)雜的數(shù)據(jù)庫(kù)表連接形象檢索性能。

適用:一對(duì)一或多對(duì)一關(guān)聯(lián)。應(yīng)用程序需要立即訪問(wèn)的對(duì)象。數(shù)據(jù)庫(kù)系統(tǒng)具有良好的表連接性能。

4、ORM解決的不匹配問(wèn)題(域模型與關(guān)系模型之間存在的不匹配)

答: 域模型是面向?qū)ο蟮?#xff0c;關(guān)系模型是面向關(guān)系的。

域模型中有繼承關(guān)系,關(guān)系模型中不能直接表示繼承關(guān)系。

域模型中有多對(duì)多關(guān)聯(lián)關(guān)系,關(guān)系模型中通過(guò)連接表來(lái)表示多對(duì)多關(guān)聯(lián)關(guān)系。

域模型中有雙向關(guān)聯(lián)關(guān)系,關(guān)系模型中只有單向參照關(guān)系,而且總是many參照one方。

域模型提倡精粒度模型,關(guān)系模型提倡粗粒度模型。

5、映射繼承關(guān)系的三種方式?P 424

答:(1)繼承關(guān)系樹(shù)的每個(gè)具體類(lèi)對(duì)應(yīng)一張表:在具體類(lèi)對(duì)應(yīng)的表中,不僅包含和具體類(lèi)屬性對(duì)應(yīng)的字段,還包括與具體類(lèi)的父類(lèi)屬性對(duì)應(yīng)的字段。

(2)繼承關(guān)系樹(shù)的根類(lèi)對(duì)應(yīng)一張表:在根類(lèi)對(duì)應(yīng)的表中,不僅包括根類(lèi)屬性對(duì)應(yīng)的字段,

還包括根類(lèi)的所有子類(lèi)屬性對(duì)應(yīng)的字段。

(3)繼承關(guān)系樹(shù)中的每個(gè)類(lèi)對(duì)應(yīng)一張表,每個(gè)表中只包括和這個(gè)類(lèi)本身屬性對(duì)應(yīng)的字段,子類(lèi)的表參照父類(lèi)對(duì)應(yīng)的表。

6Sessionfind()方法以及Query接口的區(qū)別。

答案Session類(lèi)的find()方法以及Query接口都支持HQL檢索方式。這兩者的區(qū)別在于,前者只是執(zhí)行一些簡(jiǎn)單HQL查詢語(yǔ)句的便捷方法,它不具有動(dòng)態(tài)綁定參數(shù)的功能,而且在Hibernate3.x版本中,已經(jīng)淘汰了find()方法;而Query接口才是真正的HQL查詢接口,它提供了以上列出的各種查詢功能。

7ibernate的配置文件(hibernate.properties) hibernate.show_sql=true/flase

在開(kāi)發(fā)階和測(cè)試段應(yīng)設(shè)置為()在發(fā)布階段應(yīng)設(shè)置為();true\false

8映射一對(duì)多雙向關(guān)聯(lián)關(guān)系中設(shè)置SET元素:

請(qǐng)寫(xiě)出級(jí)聯(lián)保存和更新、級(jí)聯(lián)刪除應(yīng)在set元素中需要設(shè)置那些子元素?(標(biāo)明關(guān)系、避面重復(fù)執(zhí)行多余SQL語(yǔ)句)

Name? cascade? key column?? one-to-many? inverse

9list要的實(shí)現(xiàn)類(lèi)有那些? 并按照存儲(chǔ)結(jié)構(gòu)、機(jī)制簡(jiǎn)單的說(shuō)一下。

LinkedList、ArryList、Vector。

LinkedList 采用鏈表數(shù)據(jù)結(jié)構(gòu)、ArryList代表大小可變的數(shù)組。

Vector與ArryList功能比較相似,區(qū)別在于Vector采用同步、ArryList沒(méi)有采用。

10以下哪個(gè)不是Hibernate的檢索方式:

A、導(dǎo)航對(duì)象圖檢索??? B、OID檢索?????? C、ORM檢索

D、QBC檢索? ?????????? E、本地SQL檢索?? F、HQL檢索

答案:C

11.持久化類(lèi)的類(lèi)名是Customer.java,寫(xiě)出相應(yīng)的映射文件名???????????

答案:Customer.hbm.xml

12.繼承的三種方式

(1)繼承關(guān)系樹(shù)的每個(gè)具體類(lèi)對(duì)應(yīng)一張表:在具體類(lèi)對(duì)應(yīng)的表中,不僅包含和具體類(lèi)屬性對(duì)應(yīng)的字段,還包括與具體類(lèi)的父類(lèi)屬性對(duì)應(yīng)的字段。

(2)繼承關(guān)系樹(shù)的根類(lèi)對(duì)應(yīng)一張表:在根類(lèi)對(duì)應(yīng)的表中,不僅包括根類(lèi)屬性對(duì)應(yīng)的字段,還包括根類(lèi)的所有子類(lèi)屬性對(duì)應(yīng)的字段。

(3)繼承關(guān)系樹(shù)中的每個(gè)類(lèi)對(duì)應(yīng)一張表,每個(gè)表中只包括和這個(gè)類(lèi)本身屬性對(duì)應(yīng)的字段,子類(lèi)的表參照父類(lèi)對(duì)應(yīng)的表。

13. Session接口是Hibernate應(yīng)用使用最廣泛的接口。Session也被稱為持久化管理器,它提供了和持久化相關(guān)的操作,如添加、更新、刪除、加載和查詢對(duì)象。

14.請(qǐng)簡(jiǎn)述Session的特點(diǎn)有哪些?

答案:

(1)不是線程安全的,因此在設(shè)計(jì)軟件架構(gòu)時(shí),應(yīng)該避免多個(gè)線程共享同一個(gè)Session實(shí)例。

(2)Session實(shí)例是輕量級(jí)的,所謂輕量級(jí)是指它的創(chuàng)建和銷(xiāo)毀不需要消耗太多的資源。這意味著在程序中可以經(jīng)常創(chuàng)建或銷(xiāo)毀Session對(duì)象,例如為每個(gè)客戶請(qǐng)求分配單獨(dú)的Session實(shí)例,或者為每個(gè)工作單元分配單獨(dú)的Session實(shí)例。

(3)在Session 中,每個(gè)數(shù)據(jù)庫(kù)操作都是在一個(gè)事務(wù)(transaction)中進(jìn)行的,這樣就可以隔離開(kāi)不同的操作(甚至包括只讀操作)。

12Hibernate中采用XML文件來(lái)配置對(duì)象-關(guān)系映射的優(yōu)點(diǎn)有那些?

答案:Hibernate既不會(huì)滲透到上層域模型中,也不會(huì)滲透到下層數(shù)據(jù)模型中。軟件開(kāi)發(fā)人員可以獨(dú)立設(shè)計(jì)域模型,不必強(qiáng)迫遵守任何規(guī)范。數(shù)據(jù)庫(kù)設(shè)計(jì)人員可以獨(dú)立設(shè)計(jì)數(shù)據(jù)模型,不必強(qiáng)迫遵守任何規(guī)范。對(duì)象-關(guān)系映射不依賴于任何程序代碼,如果需要修改對(duì)象-關(guān)系映射,只需修改XML文件,不需要修改任何程序,提高了軟件的靈活性,并且使維護(hù)更加方便。

13、在Hibernate應(yīng)用中Java對(duì)象的狀態(tài)有哪些?

答案:

1臨時(shí)狀態(tài)(transient):剛剛用new語(yǔ)句創(chuàng)建,還沒(méi)有被持久化,不處于Session的緩存中。處于臨時(shí)狀態(tài)的Java對(duì)象被稱為臨時(shí)對(duì)象。

2持久化狀態(tài)(persistent):已經(jīng)被持久化,加入到Session的緩存中。處于持久化狀態(tài)的Java對(duì)象被稱為持久化對(duì)象。

3游離狀態(tài)(detached):已經(jīng)被持久化,但不再處于Session的緩存中。處于游離狀態(tài)的Java對(duì)象被稱為游離對(duì)象。

14 敘述Session的緩存的作用

答案:

(1)減少訪問(wèn)數(shù)據(jù)庫(kù)的頻率。應(yīng)用程序從內(nèi)存中讀取持久化對(duì)象的速度顯然比到數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)的速度快多了,因此Session的緩存可以提高數(shù)據(jù)訪問(wèn)的性能。

(2)保證緩存中的對(duì)象與數(shù)據(jù)庫(kù)中的相關(guān)記錄保持同步。當(dāng)緩存中持久化對(duì)象的狀態(tài)發(fā)生了變換,Session并不會(huì)立即執(zhí)行相關(guān)的SQL語(yǔ)句,這使得Session能夠把幾條相關(guān)的SQL語(yǔ)句合并為一條SQL語(yǔ)句,以便減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù),從而提高應(yīng)用程序的性能。

15 比較Hibernate的三種檢索策略優(yōu)缺點(diǎn);

答案:

1立即檢索;

優(yōu)點(diǎn):對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài),還是游離狀態(tài),應(yīng)用程序都可以方便的從一個(gè)對(duì)象導(dǎo)航到與它關(guān)聯(lián)的對(duì)象;

缺點(diǎn):1.select語(yǔ)句太多;2.可能會(huì)加載應(yīng)用程序不需要訪問(wèn)的對(duì)象白白浪費(fèi)許多內(nèi)存空間;

2延遲檢索:

優(yōu)點(diǎn):

由應(yīng)用程序決定需要加載哪些對(duì)象,可以避免可執(zhí)行多余的select語(yǔ)句,以及避免加載應(yīng)用程序不需要訪問(wèn)的對(duì)象。因此能提高檢索性能,并且能節(jié)省內(nèi)存空間;

缺點(diǎn):

應(yīng)用程序如果希望訪問(wèn)游離狀態(tài)代理類(lèi)實(shí)例,必須保證他在持久化狀態(tài)時(shí)已經(jīng)被初始化;

3 迫切左外連接檢索

優(yōu)點(diǎn):

1對(duì)應(yīng)用程序完全透明,不管對(duì)象處于持久化狀態(tài),還是游離狀態(tài),應(yīng)用程序都可以方便地沖一個(gè)對(duì)象導(dǎo)航到與它關(guān)聯(lián)的對(duì)象。

2使用了外連接,select語(yǔ)句數(shù)目少;

缺點(diǎn):

1 可能會(huì)加載應(yīng)用程序不需要訪問(wèn)的對(duì)象,白白浪費(fèi)許多內(nèi)存空間;2復(fù)雜的數(shù)據(jù)庫(kù)表連接也會(huì)影響檢索性能;

16 多個(gè)事務(wù)并發(fā)運(yùn)行時(shí)的并發(fā)問(wèn)題有哪些?

答案 第一類(lèi)丟失更新;臟讀;虛讀;不可重復(fù)讀;第二類(lèi)丟失更新;

17、ORM解決的不匹配問(wèn)題(域模型與關(guān)系模型之間存在的不匹配)

答: 域模型是面向?qū)ο蟮?#xff0c;關(guān)系模型是面向關(guān)系的。域模型中有繼承關(guān)系,關(guān)系模型中不能直接表示繼承關(guān)系。域模型中有多對(duì)多關(guān)聯(lián)關(guān)系,關(guān)系模型中通過(guò)連接表來(lái)表示多對(duì)多關(guān)聯(lián)關(guān)系。域模型中有雙向關(guān)聯(lián)關(guān)系,關(guān)系模型中只有單向參照關(guān)系,而且總是many參照one方。域模型提倡精粒度模型,關(guān)系模型提倡粗粒度模型。

18、session的清理和清空有什么區(qū)別?

session清理緩存是指按照緩存中對(duì)象的狀態(tài)的變化來(lái)同步更新數(shù)據(jù)庫(kù);清空是session關(guān)閉;

19.請(qǐng)簡(jiǎn)述Session的特點(diǎn)有哪些?

答案:

(1)不是線程安全的,因此在設(shè)計(jì)軟件架構(gòu)時(shí),應(yīng)該避免多個(gè)線程共享同一個(gè)Session實(shí)例。

(2)Session實(shí)例是輕量級(jí)的,所謂輕量級(jí)是指它的創(chuàng)建和銷(xiāo)毀不需要消耗太多的資源。這意味著在程序中可以經(jīng)常創(chuàng)建或銷(xiāo)毀Session對(duì)象,例如為每個(gè)客戶請(qǐng)求分配單獨(dú)的Session實(shí)例,或者為每個(gè)工作單元分配單獨(dú)的Session實(shí)例。

(3)在Session 中,每個(gè)數(shù)據(jù)庫(kù)操作都是在一個(gè)事務(wù)(transaction)中進(jìn)行的,這樣就可以隔離開(kāi)不同的操作(甚至包括只讀操作)。

20. 如下圖?? A、B、C請(qǐng) 添上字段,通過(guò) C建立? A 、表B 的雙向關(guān)系? (要求簡(jiǎn)單連線)???

?

????????????????????????????????????????????????????????????????????? 表B??

?

?

?

?

?

?

?

?

?

?????????????? 表?? A????????????????????????????????????????????????????????????????????????????????????????????????????????????

?

?

?

?

?

?

?

?

?

?

?

?

???????????????????????????????????????????????? ?????? 表C???

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Hibernate知识问答的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。