1. 程式人生 > 實用技巧 >Hibernate 錯題合集

Hibernate 錯題合集

1、在軟體開發中,屬於持久化的是

​ A:把需要的資料從資料庫中讀出來

​ B:把資料寫入資料庫

​ C:把資料儲存為硬碟上的檔案

2、屬於0RM解決方案包含內容的選項是

​ A:在持久化物件上執行基本增、刪、改、查操作的API

​ B:用於對持久化物件或屬性查詢的一種語言或者API

​ C:用於實體關係對映的工具

3、在Hibernate的應用中,對於實體類對應的對映檔案,選項正確的是

​ A: class元素用於定義一個實體類的對映資訊

​ B: id元素用於定義屬性到資料庫表主鍵欄位的對映

​ C: generator元素是id元素的子元素,用於指定主鍵的生成策略

4、關於Hibernate對映檔案中元素作用的描述正確的是

​ A: class元素定義一個實體類的對映資訊

​ B: proper ty元素定義實體類中屬性和資料庫表中欄位對應關係

​ C: column元素用於指定其父元素代表的實體類屬性所對應的資料庫表中的欄位

5、在Hibernate中,關於實體類對映檔案配置說法正確的是

​ A: class元素定義一個實體類的對映資訊

​ B: id元素定義該屬性到資料庫表主鍵欄位的對映

​ C: generator元素指定主鍵的生成策略

6、在hibernate中,屬於主鍵生成方式的是

​ A: Assigned

​ B: Identity

​ D: Sequence

7、在Hibernate關係對映配置裡,inverse屬性的含義是啥

​ A:宣告在節點之上,宣告要對方負責關聯的維護

8、選項都是Hibernate中Session的方法,其描述正確的是

​ A: save()方法用來把一個實體物件持久化到資料庫

​ B: get()方法用於從資料庫中載入資料,如果載入的資料不存在,則返回null

​ C: load ()方法用於從資料庫中載入資料,如果載入的資料不存在,則報: No row with the given identifier exists異常

9、在Hibernate中,能正確提交一個事務的是

​ A: Transacti on物件的commit()方法

10、Hibernate關於主鍵查詢說法正確的是

​ A:使用get()方式查詢單個物件時,會立即發出SQL,預設採用立即檢索策略

11、在Hibernate中,session的( )方法不會更新資料庫中的記錄

​ A: get()

​ B: load()

12、在Hibernate中,關於update()、 saveOrUpdate()、 merge()三個方法的說法正確的是

​ A:對主鍵存在的新物件執行saveOrUpdate ()方法則只更新該記錄

​ B:對主鍵存在的新物件執行merge ()方法則不管是否有屬性更新都會更新該記錄

13、關於Hibernate的資料更新方法描述正確的是

​ A:當通過get或1oad方法得到的物件它們都處於持久化狀態,可以通過save或saveOrUpdate()修改物件的資訊。

​ B: save ()的作用是把一個新的物件儲存,update() 是把一一個脫管狀態的物件或自由態物件更新到資料庫。save0rUpdate ()則相當於save ()和update ()方法的合併

​ C: Hibernate的物件有3種狀態,分別為:瞬時態(Transient)、持久態 (Persistent)、脫管態(
Detached)。

14、哪些方法是hiernate提供的更新資料庫的方法()

​ A: update()

​ B: merge()

​ C: save0rUpdate ()

15、在Hibernate中,哪些方法能向資料庫插入新的資料

​ A: save ()方法

​ B: save0rUpdate()方法

​ D:merge()方法

16、在Hibernate中,Session的( )方法會更新資料庫中的記錄

​ A: update()

​ B: merge()

17、關於Hibernate持久化資料以下說法正確的是

A: Save ()把一個瞬態的例項持久化識別符號

B: save0rUpdate如果物件自增列的屬性,對其呼叫save(), 否則update()這個物件

C: Merge ()把處理自由態的物件a的屬性複製到session當中處於持久態的的屬性中,執行完成後原來是持久狀態還是持久態,而我們提供的A還是自由態

18、下列方法中能夠把一個遊離狀態物件的屬性複製到一個持久化物件中的是

​ A: Merge()。

19、若定義: byte[] a = {1,2, 3, 4},其中0<x<3,則對a陣列元素正確的引用是

​ A: a[5-3]

​ B: a[x]

​ C: a[o]

20、在Hibernate中,merge和save0rUpdate方法區別在於

​ A: Merge方法執行後,把物件轉換為遊離態物件,再次查詢該物件還是會從資料庫中取

21、在Hibernate中,關於update和merge方法的區別說法正確的是

​ A:執行完merge方法後,傳入物件的狀態不會受到影響

22、在Hibernate中查詢會返回代理物件的方法是()

​ A:load()

23、關於hibernate中save0rUpdate ()方法說法正確的是:

​ A: saveOrUpdate ()可以根據不同的情況對資料庫進行inser t或update操作

​ B:根據實體物件的狀態由Hibernate決定使用save (),還是update()方法

​ C:當傳入實體物件是瞬時態時,執行save ()方法

**24、關於Hibernate中更新資料的方法說法正確的是 **

​ C: merge()方法,能夠把一個遊離狀態物件的屬性複製到持久化物件中,執行更新或插入操作並返回持久化的物件

​ D:如果當前Sessi on快取中沒有包含具有相同的0ID的持久化物件,可以使用update ()或save0rUpdate ()方法;如果想合併物件的修改而不考慮Session快取中物件的狀態,可以使用merge()方法

25、Hibernate中的update()用在何處()

​ A:程式在第一個session中載入物件

26、哪些狀態是EJB3中定義的Entity狀態

​ A:新實體(new) ;

​ B:持久化實體( managed) ;

​ C:刪除的實體(removed) 。

27、關於hibernate中saveOrUpdate ()方法說法正確的是:

​ A:當傳入實體物件是瞬時態時,執行save()方法

​ B:當傳入實體物件是遊離態時,執行update方法

​ C:當傳入實體物件是持久態時,不做任何操作

28、()比較靈活,適合於作為查詢的篩選條件。

​ A:子查詢

29、元素有一個cascade屬性,如果希望Hibernate級聯儲存集合中的物件,casecade屬性 應該取什麼值?

​ A: save-update

30、在Hibernate中,描述正確的是

​ A: saveOrUpdate ()方法,如果傳入的是瞬時狀態的物件,就呼叫save ()方法。

​ B:執行merge()方法,如果無法從Session快取或資料庫中載入到相應的持久化物件,則執行插入

​ C:執行update()方法,如果傳入的物件沒有0ID會報錯

31、在Hibernate中,哪些方法會對傳入物件狀態進行修改()

​ A: save()方法

​ B: update()方法

​ C: saveOrUpdate ()方法

32、以下屬於hibernate必要jar檔案的是()

​ A: hibernate3. jar

​ B: cglib-asm. jar

​ D: commons- collections. jar

33、在hibernate中,能正確獲得部門名稱和各部的平均工資的是

Select dname , avg(sal) from emp group by dept. dname

34、Hibernate中的實體物件可以分為三種狀態,三種狀態是:

​ A: Transient (臨時) ;

​ B: Persistent (持久) ;

​ C: Detached (遊離) ;

**35、如何獲得HibernateTemplate **

​ A:繼承HibernateDaoSupport後,呼叫getHibernateTemplate ()

36、Hibernate實體類物件的狀態有

​ A:臨時狀態(Tr ansient)

​ B:持久狀態(Persistent)

​ C:遊離狀態(Detached)

37、哪個關鍵字可以對物件加互斥鎖?

​ A: synchronized

38、Spring包裝Hibernate之後的Hibernate的DAO應該繼承那個類

​ A: HibernateDAOSuport

40、屬於hibernate特點的是:

​ A: Hibernate對jdbc進行了封裝,提供了強大的資料庫服務

​ B:利用hibernate,開發人員按照java的基礎語義進行持久層開發

​ C: Hibernate提供的hql是面向物件的查詢語言

41、在Hibernate中關於SessionFactory的說法哪些正確?

​ A: SessionF actory是重量級的物件,不應該隨意建立。如果系統中只有一個數據庫儲存源,只需要建立一個。

42、如何優化Hibernate?

​ A:主配置引數(舊志,查詢快取,fetch_ size, batch_ size等)

​ B: HQL優化

​ C:資料庫設計調整,API的正確使用

43、在Hibernate中,從效能方面考慮,inverse屬性值通常

​ A: false

44、在Hibernate中,關於資料庫的方言,說法是正確的是:

​ A:資料方言對應於每個資料庫,主要用於產生SQL語句

45、使用Hibernate程式設計正確的步驟是:
1、獲得Session

​ 2、編寫HQL

​ 3、呼叫createQuery獲得query物件

​ 4、設定HQL語句中引數

​ 5、list返回列表、uniqueResult 返回單一 結果物件

46、屬於hibernate. cfg. xml檔案設定oracle資料庫驅動的引數值的是

​ A: oracle. jdbc. driver. OracleDriver

**47、屬於持久化的是( ) **

​ A:從XML配置檔案中讀取程式的配置資訊

​ B:把程式資料從資料庫中讀出來

​ C:把資料存入資料庫

48、在持久化類中,二進位制大物件可以宣告為( )型別

​ A: byte[]

​ B: java. sq1. B1ob

49、是Hibernate 對映檔案中包含的內容。

​ A:主鍵生成策略

​ B:屬性資料型別

50、Hibernate技術中,由哪個元件負責解析獲取hiberante.cfg.xml資訊

​ A: Configuration

60、選項中是Hibernate的優點

​ A:物件/關係資料庫對映(ORM)

​ B:透明持久化(persistent)

​ C:移植性會很好

61、在Hibernate中關於獲取Session物件的方法說法正確的是()

​ A: openSession() 和getCurrentSession ()都可以獲取Session物件

​ B: getCurrentSession ()建立的Session會在事務提交或者回滾時自動關閉而openSession()建立的Sessi on必須手動關閉

​ C:當使用getCurrentSession ()方法時必須還要在配製檔案中進行一些設定

62、Spring整合Hibernate後,findByCriteria方法說法正確的是

​ A:引數是Retrictions物件

63、POJO是

​ A: Plain Old Java object

64、在Hibernate中,下列關於SessionFactory說法正確的有

​ A:它是執行緒安全的.

​ B:一個SessionFactory例項對應一個數據儲存源

65、關於hibernate命名SQL書寫位置正確的是

​ A: Hibernate命名SQL寫在對映檔案(*. hbm. xml)中

66、Hibernate是一個優秀的Java持久化層解決方案,那麼資料的持久化指的是

​ A:資料在程式退出後以檔案等形式儲存在儲存裝置中

67、屬於hibernate環境搭配的步驟是

​ A:下載jar包>部署jar包>建立配置檔案hibernate. cfg. xml>建立持久化類和對映檔案

68、關於Hibernate框架,下列說法正確的是

​ A: Hibernate是一個開放原始碼的物件關係對映框架

​ B: Hibernate是對JDBC進行了輕量級的物件封裝

​ C: Hibernate可以大大減少操作資料庫的工作量

69、屬於Hibernate jar包的是

​ A: Commons-collections-3. 1. jar

​ B: Jra-1.1. jar

​ C: Dom4j-1.6.1. jar

70、Hibernate通過對映檔案中的子元素來設定識別符號生成器,哪些是Hibernate提供的內建實現()

​ A: hilo

​ B: native

​ D: identity

71、屬於hibernate實體物件在自由狀態下的特徵有

​ A:不處於Session的快取中,也就是不被任何- -個Session例項關聯

​ B:在資料庫中沒有對應的記錄

72、Hibernate的概念正確的是哪些:

​ A: Hibernate的實體物件的狀態分為自由,持久,遊離狀態

​ B: HQL是面向物件的查詢語言

73、在hibernate,hibrnate session接 口的get和1oad方法描述正確的是( )

​ A:兩個方法都是利用主鍵直接獲取物件,並且可以使物件處於持久狀態

​ B:get()方法獲取物件的時候,立即執行查詢操作。

​ C: load()方法獲取物件時不會立即執行查詢操作

74、對hibernate的概述,正確的是:

​ A: Hibernate是一個標準的0RM框架

​ B:使用hibernate不需要寫SQL,語句會自動生成

​ C:適用於中小型需求變化不多的專案

75、對於Hibernate的優缺點及適用場景描述正確的是

​ A:可移植性好,對於系統更換資料庫,通常只需要修改Hibernate配置檔案即可正常執行

​ B: Hibernate的使用提高了持久化程式碼的開發速度,降低了維護成本

​ C: Hibernate不適合以資料為中心大量使用儲存過程的應用

76、是四種回話跟蹤的技術

​ A: page

​ B: request

​ C: session

**77、在hibernate中能正確提交事務的是 **

​ A: Trainsaction物件的commit方法

78、要實現hibernate自動建立表,需要hibernate.hbm2ddl.auto屬性值設定為

​ A: Create

79、( )方法能把一個遊離狀態的物件屬性複製到一個持久化物件中

​ A: update()

​ B: save0rUpdate ()

80、關於hibernate核心介面說明正確的是

​ A: Configuration 介面:配置Hibernate,根據其啟動hibernate,建立SessionFactory物件

​ B: Query和Criteria介面:執行資料庫的查詢。

​ C: Transaction介面:管理事務。

81、Hibernate中的各種對映集合說法正確的是

​ A: 無序,通常用於- -對多的關係中.

​ B: 有序,必須要有- -個索引欄位

​ C: 無序,必須要一個對映 關鍵字的欄位

82、關於Hibernate核心介面描述正確的是

​ A: Configuration介面:負責配置並啟動Hibernate

​ B: SessionFactory介面:負責初始化Hibernate

​ C: Session介面:負責持久化物件的CRUD操作

83、在Hibernate中,關於Session說法正確的是

​ A:它不是執行緒安全的

​ B:它是輕量級的

​ C: Session也被稱為持久化管理器,它提供了和持久化相關的操作

84、一對多和多對多關聯的查詢策略

​ A:在網路中傳輸的資料

85、在Hibernate中,屬於Session的方法( )有哪些:

​ A: load

​ B: save

​ C: Delete

86、在Hibernate配置檔案中,如果主鍵策略選擇的identity,適用的資料庫是

​ A: SQL Server

​ B: DB2

​ C: MySQL

87、在使用Hibernate的實體類配置檔案中,如果主鍵是應用程式負責生成,主鍵策略是

​ A: assigned

88、在Hibernate實體類對映配置檔案中,不屬於主鍵的生成策略是( )。

​ A: increase

89、在Hibernate中,如果需要跨平臺開發,連線多種資料庫,主鍵策略可選擇

​ A: assigned

​ B: native

90、在Hibernate中,關於主鍵生成策略說法正確的是

​ A: increment對型別為long、short或int的主鍵,以自動增長的方式生成主鍵值,主鍵按數值順序遞增,增量為一

​ B: sequence通常用於如0racle、DB2等支援序列的資料庫

​ C: native由hibernate根據底層資料庫自行判斷採用何種主鍵生成策略

91、在Hibernate中,根據使用的資料庫自行判斷生成主鍵的方式,配置的策略是

​ A: native

92、關於Hibernate對映檔案中元素作用的描述正確的是

​ A: class元素定義一個實體類的對映資訊

​ B:property元素定義實體類中屬性和資料庫表中欄位對應關係

​ C: column元素用於指定其父元素代表的實體類屬性所對應的資料庫表中的欄位

93、在Hibernate中,根據使用的資料庫自行判斷生成主鍵的方式,配置的策略是

​ A: native

94、關於Hibernate中實體物件狀態說法正確的是( )。

​ A:瞬時狀態是指實體物件在記憶體中瞬時存在,與資料庫記錄無關

​ B:使用Session的ge t方法載入的實體物件處於持久狀態

​ C:處於遊離狀態的物件通過Session的update方法變為持久狀態

95、屬於Hibernate快取機制的是哪些

​ A:一級快取(session級別)

​ B:二級快取(sessionF actory級別) .

​ D:及查詢快取

96、Spring包裝Hibernate之後,關於merge方法說話正確的是

​ A:根據主鍵來判斷,如果有主鍵就修改,沒有主鍵就增加記錄

97、使用快取提高查詢效能時,為了保證資料與快取中的響應物件同步,Session會清理快取,以下屬於預設清理快取時間點的是

​ A:使用Session的evict()方法

​ B:使用Session的clear()方法

98、屬於Hibernate的快取機制的是

​ A:二級快取

99、在Hibernate中,以下哪種資料適合存放到第二級快取中

​ A:不是很重要的資料,允許出現偶爾併發的資料

100、在Hibernate中關於實體物件的狀態說法正確的是

​ A:自由狀態是實體物件在記憶體中自由存在,此時它與資料庫無關

​ B:持久狀態是實體物件在Hibernate的管理情況下的狀態

​ C:當處於持久狀態的實體物件其對應的Session關閉後,該實體物件將會處於遊離狀態

101、用於將某個物件從Session的一級快取中清除的方法是( )

​ A: evict()

102、關於Hibernate重新整理快取機制說法正確的是

​ A:當應用程式呼叫Tr ansacti on的commint()方法時,commit()方法先呼叫Session的快取方法flush(),然後再提交事務

​ B: Session並不會立即重新整理快取和執行相關的sQL語句,而是在特定的時間點才重新整理快取

​ C:重新整理快取機制減少了訪問資料庫的次數,從而提高應用程式的資料訪問效能

103、在Hibernate中,session操作快取的方法中,可以將資料庫的資料覆蓋到快取中的是( )

​ A: refresh()方法

104、在使用快取提高查詢效能時,為了保證資料庫中的相關記錄與快取中的響應物件同步,Session預設會在哪些時間點清理快取

​ A:應用程式呼叫Tr ansaction的commit()方法,commit會先清理快取,再向資料庫提交事務

​ B:顯示呼叫Session的flush ()方法時

105、在Hibernate中,哪些動作會將session的資料提交到資料庫( )

​ A:當呼叫query.list()方法進行查詢時

​ B:手動呼叫Session.flush()方法

​ C:當事務提交時,tx.commit()

106、Session會在以哪個時間點重新整理快取

​ A:當應用程式呼叫Tr ansacti on的commit( )方法時

​ B:當應用程式顯式呼叫Session的flush( )方法時

107、有關Hibernate快取重新整理機制的說法中正確的是

​ A:對持久化物件的屬性值進行修改並不會立即觸發快取與資料庫同步操作

108、在Hibernate中以下那些方法可以將自由物件變為持久物件()

​ A: save()

​ B: persist()

109、有關Hibernate快取重新整理機制的說法中正確的是

​ A:對持久化物件的屬性值進行修改並不會立即觸發快取與資料庫的同步操作

110、關於Hibernate一級快取的管理描述正確的是( )。

​ A: evit(Object obj)將指定的持久化物件從一級快取中清除,釋放物件所佔用的記憶體資源,指定物件從持久化狀態變為脫管狀態,從而成為遊離物件

​ C: contains (Object obj)判斷指定的物件是否存在於一級快取中 .

​ D: flush()重新整理一級快取區的內容,使之與資料庫資料保持同步

111、下面對於Hibernate-級快取理解正確的是

​ A: Session. clear()方法可以實現該session一級快取資料的清空

112、在Hibernate中,關於session操作快取的方法,說法正確的是

​ A:使用evict()方法可以從- -級快取中清除指定的物件

113、什麼樣的資料適合存放到Hibernate第二級快取

​ A:很少被修改的資料

114、在Hibernate中,以下哪些資料可以放進二級快取中()

​ A:很少被修改的資料

​ B:不會併發訪問的資料

115、關於hibernate的一級快取正確的是

​ A:儲存在session中

116、Hibernate快取主要從哪些方面發生作用

​ A:通過主鍵值載入資料

​ B:延遲載入

117、屬於Hibernate快取外掛的是

​ A: YSCache

118、在Hibernate中,以下哪個方法可以清除Session物件中所有的快取

​ A: clear()方法

119、在Hibernate中針對快取管理以下說法正確的是

​ A: clear() 將一級快取中的所有持久化物件清除,釋放其佔用的記憶體資源

​ B: contains()判斷指定的物件是否存在於一級快取中.

​ C: flush() 重新整理一級快取區的內容,使之與資料庫資料保持同步.

120、在Hibernate中以下關於快取的說法正確的是()

​ A: Session快取被稱為Hibernate的第一級快取

​ B: SessionF actory快取被稱為Hibernate的第二級快取

​ C: SessionFactory快取分為內建快取和外接快取

121、Hibernate中一級快取的作用域是

​ A:一個hibernate的session內

123、哪些適合用hibernate的二級快取

​ A:常被讀取的資料

​ B:常量資料

124、對spring的理解正確的是

​ A:降低了元件之間的耦合性

​ B:容器提供單例模式支援

​ C: spring低侵入設計

125、Hibernate一級快取儲存在( )物件中

​ A: Session

126、在Hibernate中,一級快取的生命週期和( )物件的生命週期一致。

​ A: Session

127、某集成了Hibernate的電商系統資料庫中有一張交 易記錄表,已知該表的資料量很大,且經常新增新記錄,但查詢較少,一般只根據使用者Id查詢相關記錄,則該表的資料最適合使用( )方式來提高效能

​ A:為使用者Id列建立索引