(1)Customer類中有一個(gè)Set類型的orders屬性,用來存放Order訂單對(duì)象,在Customer.hbm.xml文件中,用哪個(gè)元素映射orders屬性?
A) B) C) D)<:property>
(2)元素有一個(gè)cascade屬性,如果希望Hibernate級(jí)聯(lián)保存集合中的對(duì)象,casecade屬性應(yīng)該取什么值?(單選)
A)none
B)save
C)delete
D)save-update
(3)以下哪些屬于Session的方法?
A)load()
B)save()
C)delete()
D)update()
E)open()
F)close()
(4)以下程序的打印結(jié)果是什么?(單選)
tx = session.beginTransaction();
Customerc1=(Customer)session.load(Customer.class,newLong(1));
Customerc2=(Customer)session.load(Customer.class,newLong(1));
System.out.println(c1c2);
tx.commit();
session.close();
A)運(yùn)行出錯(cuò),拋出異常
B)打印false
C)打印true
(5)以下程序代碼對(duì)Customer的name屬性修改了兩次:
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,
new Long(1));
customer.setName(\"Jack\");
customer.setName(\"Mike\");
tx.commit();
執(zhí)行以上程序,Hibernate需要向數(shù)據(jù)庫提交幾條update語句?(單選)
A)0 B)1 C)2 D)3
(6)一般情況下,關(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)系
(7)以下關(guān)于SessionFactory的說法哪些正確?(多選)
A)對(duì)于每個(gè)數(shù)據(jù)庫事務(wù),應(yīng)該創(chuàng)建一個(gè)SessionFactory對(duì)象
B)一個(gè)SessionFactory對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫存儲(chǔ)源。
C)SessionFactory是重量級(jí)的對(duì)象,不應(yīng)該隨意創(chuàng)建。如果系統(tǒng)中只有一個(gè)數(shù)據(jù)庫存儲(chǔ)源,只需要?jiǎng)?chuàng)建一個(gè)。
D)SessionFactory的load()方法用于加載持久化對(duì)象
(8)在持久化層,對(duì)象分為哪些狀態(tài)?(多選)
A)臨時(shí)狀態(tài)
B)獨(dú)立狀態(tài)
C)游離狀態(tài)
D)持久化狀態(tài)
(9)對(duì)于以下程序,Customer對(duì)象在第幾行變?yōu)槌志没癄顟B(tài)?(單選)
Customer customer=new Customer(); //line1
customer.setName(\"Tom\"); //line2
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)對(duì)于以下程序,Customer對(duì)象在第幾行變?yōu)橛坞x狀態(tài)?(單選)
Customer customer=new Customer(); //line1
customer.setName(\"Tom\"); //line2
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)悲觀鎖與樂觀鎖,哪個(gè)具有較好的并發(fā)性能?(單選)
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
(12)以下哪一種檢索策略利用了外連結(jié)查詢?(單選)
A)立即檢索 B)延遲檢索 C)迫切左外連結(jié)檢索
(13)假設(shè)對(duì)Customer類的orders集合采用延遲檢索策略,編譯或運(yùn)行以下程序,會(huì)出現(xiàn)什么情況(單選)
tx = session.beginTransaction();
Customercustomer=(Customer)session.get(Customer.class,newLong(1));
tx.commit();
session.close();
Iterator orderIterator=customer.getOrders().iterator();
A)編譯出錯(cuò) B)編譯通過,并正常運(yùn)行 C)編譯通過,但運(yùn)行時(shí)拋出異常
(14)關(guān)于HQL與SQL,以下哪些說法正確?(多選)
A)HQL與SQL沒什么差別
B)HQL面向?qū)ο,而SQL操縱關(guān)系數(shù)據(jù)庫
C)在HQL與SQL中,都包含select,insert,update,delete語句
D)HQL僅用于查詢數(shù)據(jù),不支持insert,update和delete語句
(15)事務(wù)隔離級(jí)別是由誰實(shí)現(xiàn)的?(單選)
A)Java應(yīng)用程序 B)Hibernate C)數(shù)據(jù)庫系統(tǒng) D)JDBC驅(qū)動(dòng)程序