Hibernate考試試題 (題庫)
1、 在Hibernate中,下列說法正確的有( ABC )。【選三項】
A.Hibernate是一個開放源代碼的對象關系映射框架
B.Hibernate對JDBC進行了輕量級的對象封裝
C.Hibernate可以大大減少操作數據庫的工作量
D.Hibernate提供了數據查詢機制,但沒有提供恢復機制
2、 關於Hibernate,下列說法錯誤的是( B )。
A.Hibernate是一個對象-關系映射工具
B.在MVC模式中,Hibernate屬於控制層
C.Hibernate在JDBC的方式上進行封裝,以簡化JDBC方式繁瑣的編碼工作
D.在Hibernate中,可以通過xml格式的配置文件保存對象-關系的映射信息
3、 在Hibernate中,下列關於SessionFactory說法正確的有( AD )。【選兩項】
A.它是線程安全的
B.它不是線程安全的
C.它是輕量級的
D.一個SessionFactory實例對應一個數據存儲源
4、 在Hibernate中,下列關於Session說法正確的有( BCD )。【選三項】
A.它是線程安全的
B.它不是線程安全的
C.它是輕量級的
D.Session也被稱為持久化管理器,它提供了和持久化相關的操作
5、 在Hibernate中,下列關於Transaction說法正確的有( ABD )。【選三項】
A.事務Transaction為應用程序指定以原子操作單元為范圍的對象
B.在對數據庫進行增加、修改和刪除操作時一定要加上Transaction
C.在對數據庫進行查詢操作時一定要加上Transaction
D.獲得Transaction的方法:Transaction tr = session.beginTransaction();
6、 在Hibernate中,如果數據庫是MySql或者SQLServer,則generator屬性值不可以使用( )。
A.hilo
B.native
C.sequence
D.indentity
7、 在Hibernate中,如果數據庫是Oracle或者DB2,則generator屬性值不可以使用( )。
A.hilo
B.native
C.sequence
D.indentity
7、 在Hibernate中,下列哪個選項不屬於Session的方法( C )。
A.load
B.save
C.open
D.delete
9、 在Hibernate中, generator屬性值如果是native,則表示( C )。
A.由Hibernate自動以自增的方式生成標識符,每次增量為1
B.由Hibernate自動以自增的方式生成標識符,每次增量為自定義
C.根據底層數據庫對自動生成標識符的支持來選擇。。。。。。。。。。。。。。。。
D.由Java應用程序負責生成標識符
10、 Hibernate增加數據的時候,可以調用session的( AD )方法。【選兩項】
A.save
B.update
C.add
D.saveOrUpdate
11、 Hibernate對JDBC訪問數據庫的代碼進行了封裝,從而大大簡化了數據訪問層的重復性代碼,它是針對三層架構中( C )的解決方案。
A.表現層
B.業務邏輯層
C.持久化層
D.數據庫系統
12、 Hibernate是一個優秀的Java持久化層解決方案,那么數據的持久化指的是( B )。
A.數據在程序退出后就不復存在
B.數據在程序退出后以文件等形式保存在存儲設備中
C.數據的內容是不變的,處於靜態中
D.數據的內容是變化的
13、 下列選項不屬於持久化的是( A )。
A.將對象轉換為字符串的形式通過網絡傳輸,在另一端接收到該字符串后能將對象還原
B.將程序數據從數據庫中讀取出來
C.從XML配置文件中讀取程序的配置信息
D.將程序數據保存為文件
14、 使用Hibernate 技術實現數據庫持久化時,下列( D )不在Hibernate配置文件中。
A.數據庫連接信息
B.數據庫類型(dialect)
C.show_sql參數
D.數據庫表和實體的映射信息
15、 在Hibernate中,inverse屬性值為( C )時,會標識被控方。
A.all
B.false
C.true
D.none
16、 在Hibernate中,如果需要標識主控方,則inverse屬性值應為( B )。
A.all
B.false
C.true
D.none
17、 在Hibernate中,從性能方面考慮,inverse屬性值通常設置為( B )。
A.all
B.false
C.true
D.none
18、 Hibernate通過映射文件中的<generator>子元素來設定標識符生成器,下列選項哪些是Hibernate提供的內置實現( ABD )。【選三項】
A.hilo
B.native
C.assign
D.indentity
19、 三層結構是一種典型的應用軟件分層結構,這三層分別是( ABD )。【選三項】
A.表述層
B.業務邏輯層
C.控制層
D.數據層
20、 持久化技術封裝了數據訪問的細節,為大部分業務邏輯提供了面向對象的API。數據持久化具有以下3個方面的特點,分別是( ABC )。【選三項】
A.通過持久化技術能夠減少訪問數據庫中數據的次數,提高應用程序速度
B.提高代碼的可重用性
C.松耦合,使持久化的實現不依賴於底層數據庫及上層業務邏輯
D.具有更好的可擴展性
21、 在ORM中,面向對象概念中的對象與面向關系概念中的( B )相對應。
A.表
B.表的行
C.表的列
D.表中行的數據
22、 一般情況下,關系數據模型和對象模型之間有哪些匹配關系( BD )。【選兩項】
A.表對應對象
B.記錄對應對象
C.表的字段對應類方法
D.表之間的參考關系對應類之間的依賴關系
23、 在Hibernate中,一個持久化類的實例可能存在的狀態有哪些( ABD )。【選三項】
A.瞬態
B.持久態
C.隔離態
D.游離態
24、 在Hibernate的映射文件中,id節點的property元素的( C )表示指定類的屬性映射的表的字段名。
A.name
B.type
C.column
D.lazy
25、 在Hibernate的實體類映射文件中,class節點下必須有一個id節點,其中unsaved-value屬性的默認值為( A )。
A.null
B.none
C.ture
D.false
26、 下列選項關於Configuration的說法不正確的是( C )。
A.Configuration類的構造方法用於將默認路徑下的hibernate.cfg.xml(或hibernate.properties)配置文件中的配置信息讀入到內存中
B.Configuration對象用於配置並啟動Hibernate
C.獲得Configuration的方法:Configuration config = new Configuration();
D. Hibernate應用通過Configuration實例指定對象-關系映射文件的位置或者動態配置Hibernate的屬性
27、 在Hibernate中,當cascade屬性值為( C )時,表示不進行級聯操作。
A.all
B.no
C.none
D.delete
28、 在Hibernate中,如果需要進行級聯刪除,則cascade屬性值可為( AD )。【選兩項】
A.all
B.save-update
C.none
D.delete
29、 在Hibernate中,要想在刪除某個客戶數據的同時刪除該客戶對應的所有訂單數據,下列方法可行的有( BD )。【選兩項】
A.配置客戶和訂單關聯的cascade屬性為save-update
B.配置客戶和訂單關聯的cascade屬性為all
C.設置多對一關聯的inverse屬性為true
D.設置多對一關聯的inverse屬性為false
30、在Hibernate中,<set>元素有一個cascade屬性,如果希望Hibernate級聯保存集合中的對象,則cascade屬性應該取什么值( C )。
A.none
B.save
C.save-update
D.delete
31、 在Hibernate中,Customer類中有一個Set類型的orders屬性,用於存放Order訂單對象,在Customer.hbm.xml文件中,可以用( A )元素映射orders屬性。
A.<set>
B.<one-to-many>
C.<many-to-one>
D.<property>
32、 在Hibernate中,下列一對多關聯的配置中,存在哪些錯誤( AC )。【選兩項】
<set name="orders" inverse="false" cascade="true">
<one-to-many class="com.scce.pojo.Order"
column="customer_id" />
</set>
A.inverse屬性不可以設置為false
B.cascade屬性不可以設置為true
C.class="com.scce.pojo.Order"應為type="com.scce.pojo.Order"
D.column屬性不可以在<one-to-many>節點內設置
33、 在Hibernate的HQL查詢中,下列說法正確的是( B )。
A.可以調用用戶自定義函數
B.不可以調用用戶自定義函數
C.支持子查詢
D.支持分頁查詢
34、 在Hibernate的HQL查詢中,下列說法不正確的是( B )。
A.在Hibernate3中,可以使用update、delete子句
B.在Hibernate3中,不可以使用update、delete子句
C.HQL是基於SQL的
D.HQL提供了更多面向對象的封裝
35、在Hibernate的HQL查詢中,setMaxResults(3)方法中參數值3指的是( C )。
A.從第3條記錄開始
B.從第4條記錄開始
C.查詢3條記錄
D.查詢4條記錄
36、 在Hibernate的HQL查詢中,setFirstResults(3)方法中參數值3指的是( B )。
A.從第3條記錄開始
B.從第4條記錄開始
C.查詢3條記錄
D.查詢4條記錄
37、 下面代碼的執行效果是( C )。
String hql = "from TblStudent s order by s.score asc";
Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(5);
return query.list();
A.返回分數最高的5個學生
B.返回分數最高的6個學生
C.返回分數最低的5個學生
D.返回分數最低的6個學生
38、 在Hibernate的HQL查詢中,下列說法不正確的是( D )。
A.HQL子句本身的大小寫沒有差異,但類名和屬性名必須區分大小寫
B.HQL支持where子句
C.HQL支持as子句
D.where、as關鍵字區分大小寫
39、 在Hibernate的HQL查詢中,有數據庫表(dept)對應的對象名稱為Dept,下列HQL寫法正確的有( BC )。【選兩項】
A.String hql = "from com.hr.g3.persist.dept as model";
B.String hql = "from com.hr.g3.persist.Dept ";
C.String hql = "from Dept as model";
D.String hql = "from dept ";
40、 關於HQL查詢,下列說法正確的有( CD )。【選兩項】
A.HQL查詢的select子句中必須區分大小寫
B.HQL支持不統計函數
C.HQL支持僅查詢對象的某幾個屬性,查詢結果保存於Object數組中
D.HQL查詢為官方推薦的查詢方式
41、在Hibernate中,下面代碼實現了對Book實體中title屬性的模糊查詢,則下列選項中說法正確的是( B )。
Session session=this.getSession();
String hql = "from Book model where model.title like ?; " //(1)
Query query = session.createQuery(hql); //(2)
query.setString(0, "%java%"); //(3)(中文分號)
List list = query.list(); //(4)
A. 第(1)行,Book與model之間必須有as關鍵字
B. 第(2)行,沒有錯誤
C. 第(3)行應該為:query.setString(0, "java");
D. 第(4)行應該為:List llist = query.executeQuery();
42、 關於HQL與SQL,下列說法正確的有( BC )。【選兩項】
A.HQL與SQL沒有多少差別
B.HQL面向對象,而SQL操縱關系數據庫
C.在HQL與SQL中,都包含select,insert,update,delete語句(逗號還是頓號)
D.HQL僅用於查詢數據,不支持insert,update和delete語句(頓號還是逗號)
43、 在HQL語言中,Query對象特別提供了( B )方法,用於獲得一個唯一行唯一列的對象。
A.list
B.uniqueResult
C.result
D.queryResult
44、 關於HQL查詢,下列說法錯誤的是( A )。
A.HQL查詢可以執行T-SQL語句,執行速度更快
B.HQL支持只查詢對象的某幾個屬性,查詢結果將保存在一個Object數組中
C.HQL支持統計函數
D.HQL語句可以實現類似PreparedStatement的效果
45、 在JAVA中,關於屬性文件,下列選項說法正確的是( A )。
A.屬性文件以名稱和值的形式保存信息
B.屬性文件不能寫中文(???)
C.屬性文件中能保存各種數據類型的信息
D.屬性文件的文件擴展名是.xml
46、 在Hibernate中,下列關於HQL參數綁定的寫法正確的有( AD )。【選兩項】
String hql ="from Dept as model where model.deptName =? and model.createDate =? ";
A.第一個參數的位置為0
B.第一個參數的位置為1
C.設置參數的方法為:setEntity()
D.設置參數的方法為:setParameter()
47、 在Hibernate中,下面的程序代碼對Customer的name屬性進行了兩次修改:
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class, new Long(1));
customer.setName("Jack");
customer.setName("Mike");
tx.commit();
則執行以上程序時,Hibernate需要向數據庫提交( B )條update語句。
A.0
B.1
C.2
D.3
48、關於Criteria查詢,下列說法正確的有( ABC )。【選三項】
A.Criteria查詢通過面向對象化的設計將數據查詢條件封裝成一個對象
B.Criteria查詢可讀性強
C.Criteria查詢符合Java程序員的編程習慣
D.Criteria查詢沒有HQL查詢容易理解
49、 Criteria查詢通過面向對象化的設計將數據查詢條件封裝為一個( A )。
A.對象
B.序列
C.類
D.HQL語句
50、 在Hibernate中,Criteria本身只是查詢容器,其具體的條件是通過( A )方法添加至Criteria實例中。(題目有問題)
A.Criteria.add
B.Criteria.update
C.Criteria.save
D.Criteria.put
51、 在Hibernate的Criteria查詢中,Expression對象具體描述了查詢條件,其對應SQL條件中的field>=value的方法是( AC )。
A.Expression.eq
B.Expression.gt
C.Expression.ge
D.Expression.lt
52、 在Hibernate的Criteria查詢中,Expression對象具體描述了查詢條件,其中Expression.le對應的SQL條件是( D )。
A.field>value
B.field>=value
C.field<value
D.field<=value
53、 在Hibernate的Criteria查詢中,從第5條記錄開始查詢的方法是( A )。
A.criteria.setFirstResult(4);
B.criteria.setFirstResult(5);
C.criteria.setMaxResult(4);
D.criteria.setMaxResult(5);
54、 在Hibernate的Criteria查詢中,查詢5條記錄的方法是( D )。
A.criteria.setFirstResult(4);
B.criteria.setFirstResult(5);
C.criteria.setMaxResult(4);
D.criteria.setMaxResult(5);
55、 在Hibernate的Criteria查詢中,下列按創建日期進行排序的方法是( B )。
A.criteria.addOrder(Order.asc("createDate"));
B.criteria.addOrder(Order.desc("createDate"));
C.criteria.saveOrder(Order.asc("createDate"));
D.criteria.saveOrder(Order.desc("createDate"));
56、 在Hibernate的Criteria查詢中,有如下代碼:
Criteria criteria = session.createCriteria(Dept.class);
criteria.add(Expression.eq("deptName", "人事部"));
其對應的HQL語句為( C )。
A.String hql = "from Dept";
B.String hql = "from Dept as model";
C.String hql = "from Dept as model where model.deptName =’人事部’";
D.String hql = "from Dept as model where model.deptName = 人事部";
57、 下面的代碼對應的HQL語句是( D )。
Criteria criteria = session.createCriteria(Dept.class);
criteria.addOrder(Order.asc("createDate"));
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";
58、 HQL語句:String hql ="from Dept as model order by model.deptName, model.createDate desc";所表達的意思為( C )。
A.查詢部門,按照deptName的desc排序
B.查詢部門,按照createDate的desc排序
C.查詢部門,先按照deptName的desc排序,再按照createDate的desc排序
D.查詢部門,deptName和createDate的desc排序沒有先后之分
59、 下列選項中,對下面代碼的說法正確的是( D )。
String hql = "from Dept as model where model.deptName = 人事部";
Query query = session.createQuery(hql);
List<Dept> deptList = query.list();
A.查詢所有部門
B.查詢部門名稱為“人事部”的部門
C.查詢出錯
D.該HQL查詢無法查出“人事部”這個部門
60、在Hibernate中,下列說法不正確的是( D )。
A.HQL是基於SQL的
B.HQL提供更加面向對象的封裝
C.HQL是Hibernate官方推薦的查詢方式
D.HQL提供的是面向關系型數據庫的。。。。。。。。。。。。。。
61、 對於HQL中的as關鍵字,下列說法正確的是( C )。
A.必須要有
B.必須沒有
C.可以有,也可以沒有
D.以上說法均不正確
62、 在Hibernate中,用於比較字符串的like操作符“like '部%'”表示( A )。
A.所有以“部”開頭的字符串
B.所有以“部”結尾的字符串
C.所有包括“部”的字符串
D.所有包括“部”且“部”不在開頭和結尾的字符串
63、 在Hibernate中,用於比較字符串的like操作符“like '%部%'”表示( C )。
A.所有以“部”開頭的字符串
B.所有以“部”結尾的字符串
C.所有包括“部”的字符串
D.所有包括“部”且“部”不在開頭和結尾的字符串
64、 在Hibernate中,下列說法正確的有( BD )。【選兩項】
A.HQL只用於查詢數據
B.HQL具備更強大的功能,實體的更新與刪除即其主要特征之一
C.delete與update子句為Hibernate2引入的新特性
D.delete與update子句為Hibernate3引入的新特性
65、在Hibernate的HQL查詢中,有如下代碼:
String hql = "select model.deptName,model.createDate from Dept as model ";
Query query = session.createQuery(hql);
則query.list();返回的是( D )。
A.所有部門的集合
B.所有部門名稱的集合
C.所有部門創建日期的集合
D.所有包括部門名稱和創建日期的對象數組的集合
版權所有,允許轉載,轉載請注明出處,侵權必究!