1.在Hibernate中,以下关于主键生成器说法错误的是(C)。

Aincrement可以用于类型为longshortbyte的主键 long,short,byte都是特殊的int类型

Bidentity用于如SQL ServerDB2MySQL等支持标识列的数据库 identity是标识列的意思

Csequence用于如OracleSQL Server等支持序列的数据库 SqlServer是不能使用序列的

DnativeHibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值

 

2.在Hibernate中,关于脏检查和刷新缓存说法正确的是( CD)。

 

A.当事务提交时,会发生脏检查 事务提交之前会自动调用commit()方法

 

BSessionflush( )方法是刷新缓存的方法

 

C.在执行Sessioncommit( )方法之前不会调用Sessionflush( )方法

 

D.编写代码时,调用commit( )方法之前要调用flush( )方法  无需手动调用,hibernate会自动帮我们调用方法!

刷新缓存刷新的就是脏检查

3.使用HQL查询所有部门信息,以下正确的是(AD)。

Afrom Dept 

Bselect * from cn.jbit.demo.entity.Dept  不能使用*

Cselect Dept from cn.jbit.demo.entity.Dept d   正确写法是:select d from cn.jbit.demo.entity.Dept d

Dselect d from Dept d

 

4.关于Query接口的list( )iterate( )方法,说法正确的是(AD)。

 

A.执行list( )方法,查询所有符合条件的记录

 

B.执行iterate( )方法,查询所有符合条件的记录

 

C.执行list( )方法,查询出所有符合条件的主键值

 

D.执行iterate ( )方法,查询出所有符合条件的主键值

list()方法的作用是查询记录,而iterate()方法是检索id

5.在HQL中,关于Query接口绑定参数的方法,说法正确的是(ABCD)。

AsetParameter( )方法用于绑定任意类型的参数 正确,参数类型可以是object

 

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属性值deptcn.jbit.hibernatedemo.entity.Emp类的属性名

 

D<many-to-one>标签中的column属性值DEPTNOdept表的主键名 描述的是Emp表的外键

7.在Hibernate映射文件中,关于inverse属性说法正确的是(ACD)。

Ainverse属性有两个值:truefalse 正确

B<many-to-one>标签有inverse属性 没有

C<set>标签有inverse属性 正确

Dinverse属性用于指定维护关联关系的那一方 正确

 

8.在Hibernate映射文件中,关于延迟加载配置说法错误的是(B)

 

A<class>标签中lazy属性可选值:truefalse 

 

B<set>标签中lazy属性可选值:trueproxyno-proxy

 

C< set>标签中lazy属性可选值:true、extrafalse

 

D<many-to-one>标签中lazy属性可选值:proxytruefalse

 

类级别 true(默认),false
一对多和多对多 true(default),false,extra(加强延迟加载)
多对一(没有set) proxy(default),no-proxy,false

9.在Hibernate映射文件中,关于<component>标签说法正确的是(D)。

A<component>标签用来映射组件类

B<component>标签通过<parent>指定组件类所属的整体类

C<component>标签通过<property>指定组件类的属性

D<component>标签有idnameclass属性 没有id属性

 

 

component组件映射
<hibernate-mapping package="cn.happy.component">
   <class name="EmpInfo" table="EMPINFO">
       <id name="eid" column="EID">
        <generator class="native"></generator>
       </id>
       <property name="ename" column="ENAME" type="string"></property>
       <component  name="ehome" class="EmpHomeAddress">
          <parent name="empinfo"/>
          <property name="ehomestreet" column="EHOMESTREET" type="string"></property>
          <property name="ehomecity" column="EHOMECITY" type="string"></property>
          <property name="ehomeprovince" column="EHOMEPROVINCE" type="string"></property>
          <property name="ehomezipcode" column="EHOMEZIPCODE" type="string"></property>
       </component>
   </class> 
</hibernate-mapping>

 

 

 

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

 

AExecutorType.SIMPLE

 

BExecutorType.BATCH

 

CExecutorType.EXECUTE

 

DExecutorType.REUSE

ExecutorType

 

ExecutorType是一个枚举类

public enum ExecutorType { SIMPLE, REUSE, BATCH}

在Configuration类中,设定的defaultExecutorType默认值为ExecutorType.SIMPLE

public class Configuration {...protected ExecutorType defaultExecutorType = ExecutorType.SIMPLE;...}

ExecutorType的设定,决定session的执行器Executor使用不同的实现类。

Executor executor = configuration.newExecutor(tx, execType);

12.关于Hibernate缓存说法错误的是(CD)。

AHibernate缓存一般分为三类:一级缓存、二级缓存和查询缓存

BSessionevict( )方法用于从缓存中清除指定的持久化对象

CSessionclear( )方法用于刷新缓存 弄反了

DSessionflush( )方法用于从缓存中清除所有持久化对象

 

14.关于Hibernate批量处理数据说法正确的是( )。

 

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

 

B.使用JDBC API进行批量操作,SQL语句中涉及的数据会被加载到Session缓存,占用内存空间

 

C.使用Session进行批量操作,数据会被加载到Session缓存,需注意刷新并清空缓存

 

D.使用Session进行批量操作,适用于需要通过代码处理的复杂的业务逻辑场景

 

18.在 Hibernate中,关于映射Oracle中的BLOBCLOB类型的方法,说法正确的是( )。

 

ACLOB类型只能映射为java.lang.String

 

BBLOB类型可以映射为java.sql.Blob

 

CBLOB类型可以映射为byte[] 

 

DCLOB类型可以映射为java.lang.Stringjava.sql.Clob

BLOB的类型是二进制类型,CLOB的类型是大文本或自己本身

19.在Hibernate中,关于Criteria运算方法说法错误的是( CD)。

A.Restrictions.ge( )方法等同于HQL运算符 >=

B.Restrictions.like("empName","s",MatchMode.START)方法用于查找姓名以s开头的员工

C.Restrictions.disjunction( )方法用于指定多个逻辑与 逻辑或

DRestrictions.in( )方法只能用于数组 集合也可以