選擇題(37題)
1、一般情況下,關系數據模型于對象模型之間有哪些匹配關系?
A.表對應類
B.記錄對應對象
C.表的字段對應類的屬性
D.表之間的參考關系對應類之間的依賴關系
2、目前在持久化層領域,實現模式有以下幾種:
A.業務邏輯和數據訪問耦合
B.主動域對象模式
C.ORM模式
D.JDO模式
E.CMP模式
3、Hibernate API中的接口可以分為以下幾類:
A.提供訪問數據庫的操作的接口,包括session、Transaction、Query接口;
B.用于配置Hibernate的接口,Configuration;
C.間接接口,使應用程序接受Hibernate內部發生的事件,并作出相關的回應,包括:Interceptor、Lifecycle、Validatable;
D.用于擴展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。
4、在Hibernate的關聯映射中,單向多對一關聯的映射應()。(選1項)
A.配置在多的一方的映射中
B.配置在單一的一方的映射中
C.配置在哪一方均可,但只可在一方配置
D.兩方均需要配置
5、在Hibernate中,實體類的映射文件用于說明實體類和數據庫表的映射關系,以及實體類的屬性和表字段的映射關系,每個實體類對應映射文件中一個()節點。(選1項)
A.id
B.class
C.table
D.property
6、使用Hibernate技術實現數據持久化時,下面()內容不在Hibernate配置文件中配置。(選1項)
A.數據庫連接信息
B.數據庫類型(dialect)
C.show_sql參數
D.數據庫表和實體的映射信息
7、Hibernate對JDBC訪問數據庫的代碼作了封裝,從而大大簡化了數據訪問層的重復性代碼,它是針對三層架構中()的解決方案。(選1項)
A.表現層
B.業務邏輯層
C.持久化層
D.數據庫系統
8、一般情況下,關系數據模型與對象模型之間有哪些匹配關系(多選)
A.表對應類
B.記錄對應對象
C.表的字段對應類的屬性
D.表之間的參考關系對應類之間的依賴關系
9、以下關于SessionFactory的說法哪些正確?(多選)
A.對于每個數據庫事務,應該創建一個SessionFactory對象
B.一個SessionFactory對象對應一個數據庫存儲源。
C.SessionFactory是重量級的對象,不應該隨意創建。如果系統中只有一個數據庫存儲源,只需要創建一個。
D.SessionFactory的load()方法用于加載持久化對象
10、Customer類中有一個Set類型的orders屬性,用來存放Order訂單對象,在Customer.hbm.xml文件中,用哪個元素映射orders屬性?
A.
B.
C.
D.11、元素有一個cascade屬性,如果希望Hibernate級聯保存集合中的對象,casecade屬性應該取什么值?(單選)
A.none
B.save
C.delete
D.save-update
12、以下哪些屬于Session的方法?
A.load()
B.save()
C.delete()
D.update()
E.open()
F.close()
13、以下程序的打印結果是什么?(單選)
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
14、以下程序代碼對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
15、在持久化層,對象分為哪些狀態?(多選)
A.臨時狀態
B.獨立狀態
C.游離狀態
D.持久化狀態
16、對于以下程序,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
17、下程序,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
18、一種檢索策略利用了外連結查詢?(單選)
A.立即檢索
B.延遲檢索
C.迫切左外連結檢索
19、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.編譯通過,但運行時拋出異常
20、HQL與SQL,以下哪些說法正確?(多選)
A.HQL與SQL沒什么差別
B.HQL面向對象,而SQL操縱關系數據庫
C.在HQL與SQL中,都包含select,insert,update,delete語句
D.HQL僅用于查詢數據,不支持insert,update和delete語句
21、事務隔離級別是由誰實現的?(單選)
A.Java應用程序
B.Hibernate
C.數據庫系統
D.JDBC驅動程序
22、悲觀鎖與樂觀鎖,哪個具有較好的并發性能?(單選)
A.悲觀鎖
B.樂觀鎖
23、什么是ORM?
24、Hibernate 有哪5 個核心接口?
25、關于hibernate:
1)在hibernate 中,在配置文件呈標題一對多,多對多的標簽是什么;
2)Hibernate 的二級緩存是什么;
3)Hibernate 是如何處理事務的;
26、Hibernate 的應用(Hibernate 的結構)?
27、什么是重量級?什么是輕量級?
28、數據庫的連接字符串?
29、事務處理?
30、JDBC,Hibernate 分頁怎樣實現?
31.下面關于數據持久化概念的描述,錯誤的是()。
A.保存在內存中數據的狀態是瞬時狀態
B.持久狀態的數據在關機后數據依然存在
C.數據可以由持久狀態轉換為瞬時狀態
D.將數據轉換為持久狀態的機制稱為數據持久化
32. 下面關于Hibernate的說法,錯誤的是()。
A.Hibernate是一個“對象-關系映射”的實現
B.Hibernate是一種數據持久化技術
C.Hibernate是JDBC的替代技術
D.使用Hibernate可以簡化持久化層的編碼
33. Hibernate配置文件中,不包含下面的()。
A.“對象-關系映射”信息
B.實體間關聯的配置
C.show_sql等參數的配置
D.數據庫連接信息
34. 在Hibernate關系映射配置中,inverse屬性的含義是()。
A.定義在節點上,聲明要負責關聯的維護
B.聲明在節點上,聲明要對方負責關聯的維護
C.定義在節點上,聲明對方要負責關聯的維護
D.聲明在節點上,聲明要負責關聯的維護
35.在使用了Hibernate的系統中,要想在刪除某個客戶數據的同時刪除該客戶對應的所有訂單數據,下面方法可行的是()。
A.配置客戶和訂單關聯的cascade屬性為save-update
B.配置客戶和訂單關聯的cascade屬性為all
C.設置多對一關聯的inverse屬性為true
D.設置多對一關聯的inverse屬性為false
36.下面一對多關聯的配置中,存在哪些錯誤()。
A.inverse屬性不可以設置為false
B.cascade屬性不可設置為true
C.class=”com.x.entity.Order”應為type=”com.x.entity.Order”
D.column屬性不可再節點內設置
37.下面創建Criteria對象的語句中正確的是()。
A.Criteria c = query.createCriteria();
B.Criteria c = query.addCriteria();
C.Criteria c = session.createCriteria();
D.Criteria c = session.createCriteria(User.class);
簡答題(6題)
1、Hibernate工作原理及為什么要用?
2. Hibernate是如何延遲加載?
3.Hibernate中怎樣實現類之間的關系?(如:一對多、多對多的關系)
4. 說下Hibernate的緩存機制
5. Hibernate的查詢方式
6. 如何優化Hibernate?