程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 十五道關於Hibernate的面試題

十五道關於Hibernate的面試題

編輯:關於JAVA

(1)一般情況下,關系數據模型與對象模型之間有哪些匹配關系(多選)

A)表對應類

B)記錄對應對象

C)表的字段對應類的屬性

D)表之間的參考關系對應類之間的依賴關系

(2)以下關於SessionFactory的說法哪些正確?(多選)

A)對於每個數據庫事務,應該創建一個SessionFactory對象

B)一個SessionFactory對象對應一個數據庫存儲源。

C)SessionFactory是重量級的對象,不應該隨意創建。如果系統中只有一個 數據庫存儲源,只需要創建一個。

D)SessionFactory的load()方法用於加載持久化對象

(3)Customer類中有一個Set類型的orders屬性,用來存放Order訂單對象,在 Customer.hbm.xml文件中,用哪個元素映射orders屬性?

A) B) C) D)<:property>

(4)元素有一個cascade屬性,如果希望Hibernate級聯保存集合中的對象, casecade屬性應該取什麼值?(單選)

A)none

B)save

C)delete

D)save-update

(5)以下哪些屬於Session的方法?

A)load()

B)save()

C)delete()

D)update()

E)open()

F)close()

(6)以下程序的打印結果是什麼?(單選)

tx = session.beginTransaction();

Customer c1=(Customer)session.load(Customer.class,new Long(1));

Customer c2=(Customer)session.load(Customer.class,new Long(1));

System.out.println(c1==c2);

tx.commit();

session.close();

A)運行出錯,拋出異常

B)打印false

C)打印true

(7)以下程序代碼對Customer的name屬性修改了兩次:

tx = session.beginTransaction();

Customer customer=(Customer)session.load(Customer.class,

new Long(1));

customer.setName(\"Jack\");

customer.setName(\"Mike\");

tx.commit();

執行以上程序,Hibernate需要向數據庫提交幾條update語句?(單選)

A)0 B)1 C)2 D)3

(8)在持久化層,對象分為哪些狀態?(多選)

A)臨時狀態

B)獨立狀態

C)游離狀態

D)持久化狀態

(9)對於以下程序,Customer對象在第幾行變為持久化狀態?(單選)

Customer customer=new Customer(); //line1

customer.setName(\"Tom\"); //line2

Session session1=sessionFactory.openSession(); //line3

Transaction tx1 = session1.beginTransaction(); //line4

session1.save(customer); //line4

tx1.commit(); //line5

session1.close(); //line6

A) line1 B)line2 C)line3 D)line4 E)line5 F)line6

(10)對於以下程序,Customer對象在第幾行變為游離狀態?(單選)

Customer customer=new Customer(); //line1

customer.setName(\"Tom\"); //line2

Session session1=sessionFactory.openSession(); //line3

Transaction tx1 = session1.beginTransaction(); //line4

session1.save(customer); //line4

tx1.commit(); //line5

session1.close(); //line6

A) line1 B)line2 C)line3 D)line4 E)line5 F)line6

(11)以下哪一種檢索策略利用了外連結查詢?(單選)

A)立即檢索 B)延遲檢索 C)迫切左外連結檢索

(12)假設對Customer類的orders集合采用延遲檢索策略,編譯或運行以下程 序,會出現什麼情況(單選)

Session session=sessionFactory.openSession();

tx = session.beginTransaction();

Customer customer=(Customer)session.get(Customer.class,new Long (1));

tx.commit();

session.close();

Iterator orderIterator=customer.getOrders().iterator();

A)編譯出錯 B)編譯通過,並正常運行 C)編譯通過,但運行時拋出異常

(13)關於HQL與SQL,以下哪些說法正確?(多選)

A)HQL與SQL沒什麼差別

B)HQL面向對象,而SQL操縱關系數據庫

C)在HQL與SQL中,都包含select,insert,update,delete語句

D)HQL僅用於查詢數據,不支持insert,update和delete語句

(14)事務隔離級別是由誰實現的?(單選)

A)Java應用程序 B)Hibernate C)數據庫系統 D)JDBC驅動程序

(15)悲觀鎖與樂觀鎖,哪個具有較好的並發性能?(單選)

A)悲觀鎖 B)樂觀鎖

答案:

(1)A,B,C (2)B,C (3)A (4)D (5)A,B,C,D,F (6)C (7)B (8)A,C,D (9)D (10)F (11)C (12)C (13)B,D (14)C (15)B

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved