2024年Hibernate筆試歷年真題薈萃含答案_第1頁
2024年Hibernate筆試歷年真題薈萃含答案_第2頁
2024年Hibernate筆試歷年真題薈萃含答案_第3頁
2024年Hibernate筆試歷年真題薈萃含答案_第4頁
2024年Hibernate筆試歷年真題薈萃含答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2024年Hibernate筆試歷年真題薈萃含答案(圖片大小可自由調(diào)整)第1卷一.參考題庫(共30題)1.Criteria查詢通過面向?qū)ο蠡脑O(shè)計(jì)將數(shù)據(jù)查詢條件封裝為一個(gè)對(duì)象,下列寫法正確的是()A、AB、BC、CD、D2.如何優(yōu)化Hibernate查詢性能?3.級(jí)聯(lián)刪除時(shí),cascade屬性是()。A、??allB、??saveC、??deleteD、??save-update4.在使用了Hibernate的系統(tǒng)中,要想在刪除某個(gè)客戶數(shù)據(jù)的同時(shí)刪除該客戶對(duì)應(yīng)的所有訂單數(shù)據(jù),下面方法可行的是()A、配置客戶和訂單關(guān)聯(lián)的cascade屬性為save-updateB、配置客戶和訂單關(guān)聯(lián)的cascade屬性為allC、設(shè)置多對(duì)一關(guān)聯(lián)的inverse屬性為trueD、設(shè)置多對(duì)一關(guān)聯(lián)的inverse屬性為false5.J2EE中,包含有Web工程和EJB工程的項(xiàng)目,打包封裝成()文件A、jarB、warC、earD、zip6.Hibernate對(duì)JDBC訪問數(shù)據(jù)庫的代碼進(jìn)行了封裝,從而大大的簡(jiǎn)化了數(shù)據(jù)訪問層的代碼,它是針對(duì)三層架構(gòu)中()的解決方案。A、??表現(xiàn)層B、??業(yè)務(wù)邏輯層C、??持久化層D、??數(shù)據(jù)庫系統(tǒng)7.在Hibernate中,下面代碼實(shí)現(xiàn)了對(duì)Book實(shí)體中title屬性的模糊查詢,則下列選項(xiàng)中說法正確的是() A、?第(1)行,Book與model之間必須有as關(guān)鍵字B、?第(2)行,沒有錯(cuò)誤C、?第(3)行應(yīng)該為:query.setString(0,?"java");D、?第(4)行應(yīng)該為:List?llist?=?query.executeQuery();8.簡(jiǎn)述Collection和Collections的區(qū)別。9.簡(jiǎn)述Hibernate與spring的聯(lián)系10.hibernate中Criteria和DetachedCriteria的作用是什么?11.狀態(tài)SessionBean和無狀態(tài)SessionBean的區(qū)別說法正確的是()A、無狀態(tài)Session?Bean要保存客戶端的狀態(tài),同客戶端是一對(duì)一B、有狀態(tài)Session?Bean要保存客戶端的狀態(tài),同客戶端是一對(duì)一C、他們都要保存客戶端的狀態(tài),同客戶端是一對(duì)一D、以上說法都不對(duì)12.三層結(jié)構(gòu)是一種典型的應(yīng)用軟件分層結(jié)構(gòu),這三層分別是()A、表述層B、業(yè)務(wù)邏輯層C、控制層D、數(shù)據(jù)層13.兩個(gè)對(duì)象值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對(duì)不對(duì)?14.一般情況下,關(guān)系數(shù)據(jù)模型與對(duì)象模型之間有哪些匹配關(guān)系()A、表對(duì)應(yīng)類B、記錄對(duì)應(yīng)對(duì)象C、表的字段對(duì)應(yīng)類的屬性D、表之間的參考關(guān)系對(duì)應(yīng)類之間的依賴關(guān)系15.DetachedObject(游離對(duì)象)有什么好處16.實(shí)體Bean中至少需要注入一下那兩個(gè)注記()A、EntityB、TableC、StatefulD、Stateless17.下面關(guān)于Hibernate中Session的說法正確的是()A、Session是輕量級(jí)的,可以隨意的創(chuàng)建和銷毀B、Session是重量級(jí)的,不能隨意的創(chuàng)建和銷毀C、Session是線程安全的D、Session不是線程安全的18.JDBC,hibernate分頁顯示怎么實(shí)現(xiàn)?19.下面一對(duì)多關(guān)聯(lián)的配置中,存在哪些錯(cuò)誤()A、inverse屬性不可以設(shè)置為falseB、cascade屬性不可設(shè)置為trueC、class="com.x.entity.Order"應(yīng)為type="com.x.entity.Order"????????????????????D、column屬性不可再<o(jì)ne-to-many>節(jié)點(diǎn)內(nèi)設(shè)置20.下面關(guān)于Hibernate映射文件配置中dynamic-update屬性說法正確的是()A、動(dòng)態(tài)的修改,如果為true,只改變有改變的屬性B、動(dòng)態(tài)的修改,如果為true,只改變沒有改變過的屬性C、動(dòng)態(tài)的修改,如果為true,改變所有的屬性D、以上說法都錯(cuò)21.可以把結(jié)果集映射的信息放在外部的()元素中,這樣就可以在多個(gè)命名查詢間或者通過setResultSetMapping()API來訪問A、<resultset>B、<result>C、<mapping>D、<description>22.下面的代碼對(duì)應(yīng)的HQL語句是() A、String?hql?=?"from?Dept";B、String?hql?=?"from?Dept?as?model";C、String?hql?=?"from?Dept?as?model?where?model.createDate?=’createDate’";D、String?hql?=?"from?Dept?as?model?order?by?model.createDate?asc";23.在J2EE中,Servlet和JSP組件必須在()容器中才能運(yùn)行A、AppletB、客戶端C、WebD、EJB24.在源代碼中嵌入映射信息需要()A、AnnoationB、hbm.xmlC、struts.xmlD、web.xml25.下列創(chuàng)建序列的SQL語句: 序列seq1的生成的值已經(jīng)到最大值200,再執(zhí)行下列語句: SELECTseq1.nextvalFROMdual; 下列顯式正確值的選項(xiàng)是()。A、1B、10C、100D、報(bào)錯(cuò)26.以下檢索策略中,()利用了外連結(jié)查詢A、立即檢索B、延遲檢索C、迫切左外連結(jié)檢索D、迫切右外連結(jié)檢索27.簡(jiǎn)述使用Hibernate完成持3久化操作的3個(gè)準(zhǔn)備和7個(gè)步驟。28.評(píng)估CREATETABLE語句: 下列關(guān)于prod_id_pk選項(xiàng)正確的是()。A、可以被創(chuàng)建,但需要唯一索引用手工創(chuàng)建B、可以被創(chuàng)建并且會(huì)自動(dòng)創(chuàng)建唯一索引C、可以被創(chuàng)建并且會(huì)自動(dòng)創(chuàng)建非唯一索引D、可以被創(chuàng)建但不可以使用,因?yàn)闆]有指定索引29.Hibernate對(duì)象從臨時(shí)狀態(tài)到持久狀態(tài)轉(zhuǎn)換的方式有?()A、調(diào)用session的save方法B、調(diào)用session的close方法C、調(diào)用session的clear方法D、調(diào)用session的evict方法30.簡(jiǎn)述Hibernate的優(yōu)點(diǎn)和缺點(diǎn)?第1卷參考答案一.參考題庫1.參考答案:D2.參考答案: 1?)lazy=true,hibernate3開始已經(jīng)默認(rèn)是lazy=true了;lazy=true時(shí)不會(huì)立刻查詢關(guān)聯(lián)對(duì)象,只有當(dāng)需要關(guān)聯(lián)對(duì)象(訪問其屬性,非id字段)時(shí)才會(huì)發(fā)生查詢動(dòng)作。 2)二級(jí)緩存,在對(duì)象更新,刪除,添加相對(duì)于查詢要少得多時(shí),二級(jí)緩存的應(yīng)用將不怕n?+1問題,因?yàn)榧词沟谝淮尾樵兒苈?,之后直接緩存命中也是很快的?.參考答案:C4.參考答案:B5.參考答案:C6.參考答案:C7.參考答案:B8.參考答案: Collections是個(gè)java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。? Collection是個(gè)java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。9.參考答案: hibernate中的一些對(duì)象可以給Spring來管理,讓Spring容器來創(chuàng)建hibernate中一些對(duì)象實(shí)例化。例如:SessionFactory,HibernateTemplate等。? Hibernate本來是對(duì)數(shù)據(jù)庫的一些操作,放在DAO層,而Spring給業(yè)務(wù)層的方法定義了事務(wù),業(yè)務(wù)層調(diào)用DAO層的方法,很好的將Hibernate的操作也加入到事務(wù)中來了。10.參考答案: 11.參考答案:B12.參考答案:A,B,D13.參考答案:不對(duì),有相同的hashcode。14.參考答案:A,B,C15.參考答案:DetachedObject(游離對(duì)象)可以傳遞到任何層直到表現(xiàn)層而不是用任何DTO(DataTransferObjects).然后你還可以重新把游離對(duì)象賦給另外一個(gè)Session.16.參考答案:A,B17.參考答案:A,D18.參考答案: 19.參考答案:B20.參考答案:A21.參考答案:A22.參考答案:D23.參考答案:C24.參考答案:A25.參考答案:A26.參考答案:C27.參考答案: 28.參考答案:B29.參考答案:A30.參考答案: (1)Hibernate的優(yōu)點(diǎn): 1).Hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性;? 2).Hibernate的性能非常好,因?yàn)樗且粋€(gè)輕量級(jí)框架。映射的靈活性很出色; 3).它支持多種關(guān)系數(shù)據(jù)庫,從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系; (2)Hibernate的缺點(diǎn): 它限制您所使用的對(duì)象模型,如一個(gè)持久性類不能映射到多個(gè)表,其獨(dú)有的?界面和可憐的市場(chǎng)份額也讓人不安。第2卷一.參考題庫(共30題)1.下面創(chuàng)建Criteria對(duì)象的語句中正確的是()A、Criteria?c?=?query.createCriteria();B、Criteria?c?=?query.addCriteria();C、Criteria?c?=?session.createCriteria();D、Criteria?c?=?session.createCriteria(User.class);2.AnonymousInnerClass(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?3.如果數(shù)據(jù)庫是oracle或者db2,則generator屬性值不可以使用()。A、??nativeB、??identityC、??hiloD、??sequence4.什么事O/RM?5.下面程序執(zhí)行后沒有報(bào)錯(cuò),但數(shù)據(jù)總保存不到數(shù)據(jù)庫,最可能的原因是()A、沒有在配置文件中包含對(duì)映射文件的聲明B、配置文件配置有誤C、映射文件配置有誤D、沒有對(duì)持久化操作捕捉異常E、沒有開啟事務(wù)6.關(guān)于Hibernate中關(guān)系的說話正確的是()A、一對(duì)多必須用Set來映射B、多對(duì)一必須用Set來映射C、一對(duì)多可以用Set來映射,也可以用List、Map來映射D、多對(duì)一必須用Set來映射,也可以用List、Map來映射7.在三層結(jié)構(gòu)中,數(shù)據(jù)訪問層承擔(dān)的責(zé)任是()A、定義實(shí)體類B、數(shù)據(jù)的增刪改查操作C、業(yè)務(wù)邏輯的描述D、頁面展示和控制轉(zhuǎn)發(fā)8.A_oe和A_hr是數(shù)據(jù)庫中的2個(gè)用戶,A_oe下有一個(gè)表Orders,執(zhí)行下列語句如下: 執(zhí)行上面語句后結(jié)果正確的是()。A、A_hr能夠查詢A_oe.orders表B、A_hr不能夠查詢A_oe.orders表C、REVOKE語句將撤銷A_hr的SELECT權(quán)限同時(shí)也從r1角色撤銷SELECT權(quán)限D(zhuǎn)、REVOKE語句將報(bào)錯(cuò),因?yàn)镾ELECT權(quán)限已經(jīng)被r1角色授予9.試述load()和get()的區(qū)別。10.在Hibernate中,以下關(guān)于主鍵生成器說法錯(cuò)誤的是()。A、increment可以用于類型為long、short或byte的主鍵B、identity用于如SQLServer、DB2、MySQL等支持標(biāo)識(shí)列的數(shù)據(jù)庫C、sequence用于如Oracle、SQLServer等支持序列的數(shù)據(jù)庫D、native由Hibernate根據(jù)底層數(shù)據(jù)庫自行判斷采用何種主鍵生成策略,是由使用的數(shù)據(jù)庫生成主鍵的值11.在Hibernate的HQL查詢中,下列說法不正確的是()。A、在Hibernate3中,可以使用update、delete子句B、在Hibernate3中,不可以使用update、delete子句C、HQL是基于SQL的D、HQL提供了更多面向?qū)ο蟮姆庋b12.在Hibernate的Criteria查詢中,從第5條記錄開始查詢的方法是()。A、criteria.setFirstResult(4);B、criteria.setFirstResult(5);C、criteria.setMaxResult(4);D、criteria.setMaxResult(5);13.Struts的validate框架是如何驗(yàn)證的?14.將某個(gè)對(duì)象從Session的一級(jí)緩存中清除的方法是()。A、close()B、clear()C、evict()D、flush()15.在J2EE中,EJB組件必須在()容器中才能運(yùn)行A、AppletB、客戶端C、WebD、EJB16.在MyBatis中,ExecutorType的值包括()。A、ExecutorType.SIMPLEB、ExecutorType.BATCHC、ExecutorType.EXECUTED、ExecutorType.REUSE17.hibernate里面的sortedcollection和orderedcollection有什么區(qū)別?18.下面關(guān)于ORM的說法錯(cuò)誤的是()A、對(duì)象關(guān)系映射,讓現(xiàn)實(shí)中的對(duì)象同數(shù)據(jù)庫的表產(chǎn)生映射B、對(duì)象關(guān)系映射,讓類同表產(chǎn)生關(guān)系C、對(duì)象關(guān)系映射,讓類同記錄產(chǎn)生關(guān)系D、對(duì)象關(guān)系映射,讓類中的屬性同表中的列產(chǎn)生關(guān)系19.請(qǐng)簡(jiǎn)述MyBatis和Hibernate的區(qū)別。20.下列屬于多對(duì)一關(guān)系的是()A、書和作者B、手機(jī)和生產(chǎn)廠家C、用戶和發(fā)布的出租信息D、士兵和班長(zhǎng)21.什么是Hibernate的并發(fā)機(jī)制?怎么去處理并發(fā)問題?22.下面關(guān)系Hibernate對(duì)象的狀態(tài)說話正確的是()A、Hibernat的對(duì)象只有一種狀態(tài)B、Hibernat的對(duì)象有2種狀態(tài)C、Hibernat的對(duì)象有3種狀態(tài)D、Hibernat的對(duì)象有4種狀態(tài)23.類級(jí)別的默認(rèn)檢索是()。A、立即檢索B、延遲檢索C、迫切左外連接檢索D、批量檢索24.<set>元素有一個(gè)cascade屬性,如果希望Hibernate級(jí)聯(lián)保存集合中的對(duì)象,casecade屬性應(yīng)該取()值A(chǔ)、noneB、saveC、deleteD、save-update25.在Hibernate中,用于比較字符串的like操作符“l(fā)ike’部%’”表示()。A、所有以“部”開頭的字符串B、所有以“部”結(jié)尾的字符串C、所有包括“部”的字符串D、所有包括“部”且“部”不在開頭和結(jié)尾的字符串26.Hibernate對(duì)象從瞬時(shí)(即臨時(shí)狀態(tài))到持久狀態(tài)轉(zhuǎn)換的方式有()A、調(diào)用session的save方法B、調(diào)用session的create方法C、調(diào)用session的update方法D、調(diào)用session的load方法27.spring工作機(jī)制及為什么要用?28.下面一對(duì)多關(guān)聯(lián)的配置中,存在哪些錯(cuò)誤()A、inverse屬性不可以設(shè)置為falseB、cascade屬性不可設(shè)置為trueC、class="com.x.entity.Order"應(yīng)為type="com.x.entity.Order"D、column屬性不可再<o(jì)ne-to-many>節(jié)點(diǎn)內(nèi)設(shè)置29.Hibernate的延遲加載怎么看?30.J2EE中往往使用()封裝業(yè)務(wù)實(shí)體,()封裝業(yè)務(wù)邏輯,()調(diào)用A、實(shí)體Bean、會(huì)話?Bean、實(shí)體Bean、會(huì)話?BeanB、實(shí)體Bean、會(huì)話?Bean、會(huì)話Bean、實(shí)體BeanC、會(huì)話Bean、實(shí)體Bean、實(shí)體Bean、會(huì)話?BeanD、會(huì)話Bean、實(shí)體Bean、會(huì)話Bean、實(shí)體Bean第2卷參考答案一.參考題庫1.參考答案:D2.參考答案:匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。3.參考答案:B4.參考答案:對(duì)象關(guān)心映射是一種為了解決面向?qū)ο笈c關(guān)心數(shù)據(jù)庫互不匹配的技術(shù)。簡(jiǎn)單的說,orm是通過使用描述對(duì)象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),將java程序中的對(duì)象自動(dòng)持久化到關(guān)系數(shù)據(jù)庫中,本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另一種形式。5.參考答案:E6.參考答案:C7.參考答案:B8.參考答案:A9.參考答案: 1.從返回結(jié)果上對(duì)比: L.oad方式檢索不到的話會(huì)拋出org.hibernate.ObjectNotFoundException異常get方法檢索不到的話會(huì)返回null 2.從檢索執(zhí)行機(jī)制上對(duì)比:?get方法和find方法都是直接從數(shù)據(jù)庫中檢索?而load方法的執(zhí)行則比較復(fù)雜首先查找session的persistent?Context中是否有緩存,如果有則直接返回?如果沒有則判斷是否是lazy,如果不是直接訪問數(shù)據(jù)庫檢索,查到記錄返回,查不到拋出異常?如果是lazy則需要建立代理對(duì)象,對(duì)象的initialized屬性為false,target屬性為null?在訪問獲得的代理對(duì)象的屬性時(shí),檢索數(shù)據(jù)庫,如果找到記錄則把該記錄的對(duì)象復(fù)制到代理對(duì)象的target上,并將initialized=true,如果找不到就拋出異常。 H.ibernate對(duì)于?load方法認(rèn)為該數(shù)據(jù)在數(shù)據(jù)庫中一定存在,可以放心的使用代理來延遲加載,如果在使用過程中發(fā)現(xiàn)了問題,只能拋異常;而對(duì)于get方法,hibernate一定要獲取到真實(shí)的數(shù)據(jù),否則返回null。10.參考答案:A,C11.參考答案:B12.參考答案:A13.參考答案:在struts配置文件中配置具體的錯(cuò)誤提示,再在FormBean中的validate()方法具體調(diào)用。14.參考答案:C15.參考答案:D16.參考答案:A,B,D17.參考答案:sortedcollection是在內(nèi)存中通過java比較器進(jìn)行排序的orderedcollection是在數(shù)據(jù)庫中通過orderby進(jìn)行排序的18.參考答案:A,C19.參考答案: 調(diào)優(yōu)方案: Hibernate的調(diào)優(yōu)方案: 1.制定合理的緩存策略; 2.盡量使用延遲加載特性; 3.采用合理的Session管理機(jī)制; 4.使用批量抓取,設(shè)定合理的批處理參數(shù)(batch_size); 5.進(jìn)行合理的O/R映射設(shè)計(jì) Mybatis調(diào)優(yōu)方案: MyBatis在Session方面和Hibernate的Session生命周期是一致的,同樣需要合理的Session管理機(jī)制。MyBatis同樣具有二級(jí)緩存機(jī)制。MyBatis可以進(jìn)行詳細(xì)的SQL優(yōu)化設(shè)計(jì)。 1、SQL優(yōu)化方面 Hibernate的查詢會(huì)將表中的所有字段查詢出來,這一點(diǎn)會(huì)有性能消耗。Hibernate也可以自己寫SQL來指定需要查詢的字段,但這樣就破壞了Hibernate開發(fā)的簡(jiǎn)潔性。而Mybatis的SQL是手動(dòng)編寫的,所以可以按需求指定查詢的字段。HibernateSQL語句的調(diào)優(yōu)需要將SQL打印出來,而Hibernate的SQL被很多人嫌棄因?yàn)樘罅?。MyBatis的SQL是自己手動(dòng)寫的所以調(diào)整方便。但Hibernate具有自己的日志統(tǒng)計(jì)。Mybatis本身不帶日志統(tǒng)計(jì),使用Log4j進(jìn)行日志記錄 2、擴(kuò)展性方面 Hibernate與具體數(shù)據(jù)庫的關(guān)聯(lián)只需在XML文件中配置即可,所有的SQL語句與具體使用的數(shù)據(jù)庫無關(guān),移植性很好。MyBatis項(xiàng)目中所有的SQL語句都是依賴所用的數(shù)據(jù)庫的,所以不同數(shù)據(jù)庫類型的支持不好。20.參考答案:D21.參

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論