1.在Hibernate中,以下關于主鍵生成器說法錯誤的是( C)。
A.increment可以用于類型為long、short或byte的主鍵
B.identity用于如SQL Server、DB2、MySQL等支持標識列的數據庫
C.sequence用于如Oracle、SQL Server等支持序列的數據庫
D.native由Hibernate根據底層數據庫自行判斷采用何種主鍵生成策略,是由使用的數據庫生成主鍵的值
解析:C 、sequence不能用于SQL Server數據庫
2.使用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
解析:AD、 B選項中不能存在* 這種寫法。C選項中 select 后緊跟的是Dept表的別名d.
3.在HQL中,關于Query接口綁定參數的方法,說法正確的是(ABCD )。
A.setParameter( )方法用于綁定任意類型的參數
B.setParameter( )有重載的方法
C.setProperties( )有重載的方法
D.setProperties( )方法用于綁定命名參數
4.在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表的主鍵名
解析:<many-to-one>標簽中的column屬性值DEPTNO指的是emp表中的外鍵
5.在Hibernate映射文件中,關于inverse屬性說法正確的是( ACD)。
A.inverse屬性有兩個值:true、false
B.<many-to-one>標簽有inverse屬性
C.<set>標簽有inverse屬性
D.inverse屬性用于指定維護關聯關系的那一方
解析:<many-to-one>標簽不存在inverse屬性
6.在Hibernate映射文件中,關于<component>標簽說法正確的是( D)。
A.<component>標簽用來映射組件類
B.<component>標簽通過<parent>指定組件類所屬的整體類
C.<component>標簽通過<property>指定組件類的屬性
D.<component>標簽有id、name、class屬性
解析:<component>標簽沒有id屬性
7.在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;
8.關于Hibernate緩存說法錯誤的是( CD)。
A.Hibernate緩存一般分為三類:一級緩存、二級緩存和查詢緩存
B.Session的evict( )方法用于從緩存中清除指定的持久化對象
C.Session的clear( )方法用于刷新緩存
D.Session的flush( )方法用于從緩存中清除所有持久化對象
解析:Session的clear( )方法用于清空緩存,Session的flush( )方法用于刷新緩存
9.關于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用于迫切右外連接
解析:連接查詢中無迫切右外連接
10.關于Hibernate批量處理數據說法正確的是( CD)。
A.使用HQL進行批量操作,Hibernate不支持批量插入
B.使用JDBC API進行批量操作,SQL語句中涉及的數據會被加載到Session緩存,占用內存空間
C.使用Session進行批量操作,數據會被加載到Session緩存,需注意刷新并清空緩存
D.使用Session進行批量操作,適用于需要通過代碼處理的復雜的業務邏輯場景
解析:A、 hibernate支持批量插入。有三種方法:①通過HQL ②JDBC API ③Session
B、使用JDBC API進行批量操作,SQL語句中涉及的數據不會被加載到Session緩存,因此不會占用內存空間,只有使用session進行批量操作時會進緩存
11.關于HQL子查詢中,說法錯誤的是(C )。
A.size( )或size用于獲取集合中元素的數目
B.elements( )獲取集合中的所有元用于素
C.any關鍵字用于子查詢語句返回所有記錄
D.in關鍵字與“=any”意思相同
解析:any關鍵字用于子查詢語句返回任意一條記錄
12.關于原生SQL查詢和命名查詢,說法正確的是(ABC )。
A.執行原生SQL,需使用SQLQuery對象
B.SQLQuery是一個接口,繼承了Query接口
C.Hibernate支持在映射文件中定義字符串形式的查詢語句,這樣的語句是命名查詢語句
D.命名查詢語句只能是HQL語句,不能是SQL語句
解析:命名查詢語句分為HQL查詢語句和原生SQL查詢語句。HQL查詢語句使用<query>元素定義。原生SQL使用<sql-query>元素定義
13.在Hibernate中,關于Criteria運算方法說法錯誤的是( CD)。
A.Restrictions.ge( )方法等同于HQL運算符 >=
B.Restrictions.like("empName","s",MatchMode.START)方法用于查找姓名以s開頭的員工
C.Restrictions.disjunction( )方法用于指定多個邏輯與
D.Restrictions.in( )方法只能用于數組
解析:Restrictions.disjunction( )方法用于指定多個邏輯或。Restrictions.in( )方法能用于數組,也能返回Collection
14.在Hibernate中,關于注解說法正確的是( ABD)。
A.@Id用于聲明持久化類的唯一標識,對應于數據表中的主鍵
B.@Cloumn用于將屬性映射到列
C.@Transient用于忽略該屬性,需要持久化到數據庫
D.@GeneratedValue用于定義主鍵值的生成策略
解析:@Transient用于忽略該屬性,不需要需要持久化到數據庫
文章列表