Hibernate考試選擇題解析


 

1.Hibernate中,以下關於主鍵生成器說法錯誤的是(AC)。

A.increment可以用於類型為long、short或byte的主鍵byte類型不可以

B.identity用於如SQL Server、DB2、MySQL等支持標識列的數據庫

C.sequence用於如Oracle、SQL Server等支持序列的數據庫

D.native由Hibernate根據底層數據庫自行判斷采用何種主鍵生成策略,是由使用的數據庫生成主鍵的值

 解析:A.都是變相的int

2.Hibernate中,關於臟檢查和刷新緩存說法正確的是(AB)。

A.當事務提交時,會發生臟檢查

B.Session的flush( )方法是刷新緩存的方法

C.在執行Session的commit( )方法之前不會調用Session的flush( )方法

D.編寫代碼時,調用commit( )方法之前要調用flush( )方法

解析:

    臟檢查是事務提交的時候進行的

    刷新緩存:刷新緩存的事情就是臟檢查
    兩種方式:
    方式一:事務提交
    方式二:session.flush();

3.使用HQL查詢所有部門信息,以下正確的是(AD)。

A.from Dept

B.select * from cn.jbit.demo.entity.Dept

C.select Dept from cn.jbit.demo.entity.Dept d

D.select d from Dept d

解析:B.* 不能有

      D.應該select d 寫別名

 

4.關於Query接口的list( )和iterate( )方法,說法正確的是(AD)。

A.執行list( )方法,查詢所有符合條件的記錄

B.執行iterate( )方法,查詢所有符合條件的記錄

C.執行list( )方法,查詢出所有符合條件的主鍵值

D.執行iterate ( )方法,查詢出所有符合條件的主鍵值

 

5.在HQL中,關於Query接口綁定參數的方法,說法正確的是( ABCD)。

A.setParameter( )方法用於綁定任意類型的參數

B.setParameter( )有重載的方法

C.setProperties( )有重載的方法

D.setProperties( )方法用於綁定命名參數

 

6.在Hibernate中,關於以下映射配置,說法錯誤的是(D)。

<hibernate-mapping>

    <class name="cn.jbit.hibernatedemo.entity.Emp" table="EMP" schema="scott">

        <id name="empNo" column="EMPNO" type="java.lang.Integer">

            <generator class="assigned"/>

        </id>

        <property name="salary" type="java.lang.Double" column="SAL"/>

        <property name="hireDate" type="java.util.Date"/>

        <many-to-one

            name="dept"

            column="DEPTNO"

            class="cn.jbit.hibernatedemo.entity.Dept"

        />

    </class>

</hibernate-mapping>

A.此配置信息描述了cn.jbit.hibernatedemo.entity.Emp類和EMP表的映射

B.描述的是scott用戶的EMP表

C.<many-to-one>標簽中的name屬性值dept是cn.jbit.hibernatedemo.entity.Emp類的屬性名

D.<many-to-one>標簽中的column屬性值DEPTNO是dept表的主鍵名

解析:Column:數據表里面EMP對應的外鍵列

 

7.Hibernate映射文件中,關於inverse屬性說法正確的是(ACD)。

A.inverse屬性有兩個值:true、false

B.<many-to-one>標簽有inverse屬性

C.<set>標簽有inverse屬性

D.inverse屬性用於指定維護關聯關系的那一方

 解析:<many-to-one>標簽沒有inverse屬性

8.在Hibernate映射文件中,關於延遲加載配置說法錯誤的是(BD

A.<class>標簽中lazy屬性可選值:true、false

B.<set>標簽中lazy屬性可選值:true、proxy和no-proxy

解析:<set>標簽中lazy屬性可選值有true,false,extra。

C.< set>標簽中lazy屬性可選值:trueextra和false

D.<many-to-one>標簽中lazy屬性可選值:proxy、true和false

解析:<many-to-one>標簽中lazy屬性可選值有:false,proxy和no-proxy

 

9.Hibernate映射文件中,關於<component>標簽說法正確的是(ABC)。

A.<component>標簽用來映射組件類

B.<component>標簽通過<parent>指定組件類所屬的整體類

C.<component>標簽通過<property>指定組件類的屬性

D.<component>標簽有id、name、class屬性

 解析:沒有id的屬性

 

10.MyBatis指定配置文件的根元素使用的是(B)。

A.<sqlMapConfig>

B.<configuration>

C.<setting>

D.<environments>

 

11.在MyBatis中,ExecutorType的值包括( ABD)。

A.ExecutorType.SIMPLE

B.ExecutorType.BATCH

C.ExecutorType.EXECUTE

D.ExecutorType.REUSE

 解析:

public final enum org.apache.ibatis.session.ExecutorType {
  
  // Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
  public static final enum org.apache.ibatis.session.ExecutorType SIMPLE;
  
  // Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
  public static final enum org.apache.ibatis.session.ExecutorType REUSE;
  
  // Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
  public static final enum org.apache.ibatis.session.ExecutorType BATCH;
}

 

 

12.關於Hibernate緩存說法錯誤的是(CD)。

A.Hibernate緩存一般分為三類:一級緩存、二級緩存和查詢緩存

B.Session的evict( )方法用於從緩存中清除指定的持久化對象

C.Session的clear( )方法用於刷新緩存

D.Session的flush( )方法用於從緩存中清除所有持久化對象

 解析:C.D clear()和flush()方法寫反了

13.關於HQL的連接查詢,說法錯誤的是(D)。

A.inner join 或 join用於內連接

B.inner join fetch或 join fetch用於迫切內連接

C.left outer join fetch 或 left join fetch用於迫切左外連接

D.right outer join fetch 或 right join fetch用於迫切右外連接

 解析:沒有迫切右外連接

 

14.關於Hibernate批量處理數據說法正確的是(CD)。

A.使用HQL進行批量操作,Hibernate不支持批量插入

解析:支持批量

B.使用JDBC API進行批量操作,SQL語句中涉及的數據會被加載到Session緩存,占用內存空間

解析:不會被加載到session緩存中,不會占用內存空間

C.使用Session進行批量操作,數據會被加載到Session緩存,需注意刷新並清空緩存

D.使用Session進行批量操作,適用於需要通過代碼處理的復雜的業務邏輯場景

 

15.關於HQL的聚合函數使用,說法正確的是(ABCD)。

A.select count(*) from Dept d用於統計部門個數

B.select sum(e.salary) from Emp e用於匯總員工工資總額

C.select max(e.hiredate) from Emp e用於找到最新入職的員工的入職時間

D.select min(e.hiredate) from Emp e用於找到最早入職的員工的入職時間

 

16.關於HQL子查詢中,說法錯誤的是(C)。

A.size( )或size用於獲取集合中元素的數目

B.elements( )用於獲取集合中的所有元素

C.any關鍵字用於子查詢語句返回所有記錄

D.in關鍵字與“=any”意思相同

 解析:any 返回的是任意一條記錄

 

17.關於原生SQL查詢和命名查詢,說法正確的是(ABC)。

A.執行原生SQL,需使用SQLQuery對象

B.SQLQuery是一個接口,繼承了Query接口

C.Hibernate支持在映射文件中定義字符串形式的查詢語句,這樣的語句是命名查詢語句

D.命名查詢語句只能是HQL語句,不能是SQL語句

 解析:可以是SQL語句

 

18. Hibernate中,關於映射Oracle中的BLOB和CLOB類型的方法,說法正確的是(BCD)。

A.CLOB類型只能映射為java.lang.String

B.BLOB類型可以映射為java.sql.Blob

C.BLOB類型可以映射為byte[]

D.CLOB類型可以映射為java.lang.String或java.sql.Clob

 解析:CLOB類型可以映射為java.lang.String或java.sql.Clob

19.Hibernate中,關於Criteria運算方法說法錯誤的是(CD)。

A.Restrictions.ge( )方法等同於HQL運算符 >=

B.Restrictions.like("empName","s",MatchMode.START)方法用於查找姓名以s開頭的員工

C.Restrictions.disjunction( )方法用於指定多個邏輯與

D.Restrictions.in( )方法只能用於數組

 

20.Hibernate中,關於注解說法正確的是(ABD)。

A.@Id用於聲明持久化類的唯一標識,對應於數據表中的主鍵

B.@Cloumn用於將屬性映射到列

C.@Transient用於忽略該屬性,需要持久化到數據庫

D.@GeneratedValue用於定義主鍵值的生成策略

 解析:@Transient  忽略這些字段和屬性,不用持久化到數據庫

21.下列關於同義詞的說法,選項正確的是(C)。

A.只能為表創建同義詞,不能為視圖創建同義詞

B.同義詞只能用於引用其他用戶創建的表

C.公有同義詞和私有同義詞對同一個表可以同名

D.使用Drop Synonym語句刪除同義詞的同時,同義詞引用的表也無效

 

22.評估CREATE TABLE 語句:

CREATE TABLE products

(

product_id NUMBER(6) CONSTRAINT prod_id_pk PRIMARY KEY,

product_name VARCHAR2(15)

)

下列關於prod_id_pk選項正確的是(B)。

A.可以被創建,但需要唯一索引用手工創建

B.可以被創建並且會自動創建唯一索引

C.可以被創建並且會自動創建非唯一索引

D.可以被創建但不可以使用,因為沒有指定索引

 

23.下列創建序列的SQL語句:

CREATE SEQUENCE seq1

START WITH 100

INCREMENT BY 10

MINVALUE 1

MAXVALUE 200

CYCLE

NOCACHE;

序列seq1的生成的值已經到最大值200,再執行下列語句:

SELECT seq1.nextval FROM dual;

下列顯式正確值的選項是(A)。

A.1

B.10

C.100

D.報錯

 

24.A_oe和A_hr是數據庫中的2個用戶,A_oe下有一個表Orders,執行下列語句如下:

CREATE ROLE r1;

GRNAT SELECT,INSERT ON A_oe.orders to r1;

GRANT r1 to A_hr;

GRANT SELECT ON A_oe.orders To A_hr;

REVOKE SELECT ON A_oe.orders FROM A_hr;

執行上面語句后結果正確的是(A)。

A.A_hr能夠查詢A_oe.orders表

B.A_hr不能夠查詢A_oe.orders表

C.REVOKE語句將撤銷A_hr的SELECT權限同時也從r1角色撤銷SELECT權限

D.REVOKE語句將報錯,因為SELECT權限已經被r1角色授予

 

25.對於視圖,下列語句正確的是(CD)。

A.有列別名的視圖不能被修改

B.一個復雜的視圖定義中使用子查詢不能包含聚合(分組)函數和連接

C.如果一個視圖定義中包含DISTINCT關鍵字,則不能夠通過視圖進行刪除

D.創建視圖語法中OR REPLACE 選項被使用,目的是在沒有刪除視圖的情況下修改已存在的視圖定義。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM