• 03 Hibernate错题分析


    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


    14Hibernate中,关于注解说法正确的是( ABD

    A@Id用于声明持久化类的唯一标识,对应于数据表中的主键

    B@Cloumn用于将属性映射到列

    C@Transient用于忽略该属性,需要持久化到数据库

    D@GeneratedValue用于定义主键值的生成策略

    解析:@Transient用于忽略该属性,不需要需要持久化到数据库


  • 相关阅读:
    HDU1316 fib+高精度
    HDU1868
    HDU2586 LCA
    HDU1113 字符串处理
    HDU1115 几何+多边形重心
    HDU1124
    HDU1110 几何
    HDU1103
    HDU2670 DP
    linux 下查看机器是cpu是几核的
  • 原文地址:https://www.cnblogs.com/WJ-163/p/5899770.html
Copyright © 2020-2023  润新知