zoukankan      html  css  js  c++  java
  • 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用于忽略该属性,不需要需要持久化到数据库


  • 相关阅读:
    LeetCode 1245. Tree Diameter
    LeetCode 1152. Analyze User Website Visit Pattern
    LeetCode 1223. Dice Roll Simulation
    LeetCode 912. Sort an Array
    LeetCode 993. Cousins in Binary Tree
    LeetCode 1047. Remove All Adjacent Duplicates In String
    LeetCode 390. Elimination Game
    LeetCode 1209. Remove All Adjacent Duplicates in String II
    LeetCode 797. All Paths From Source to Target
    LeetCode 1029. Two City Scheduling
  • 原文地址:https://www.cnblogs.com/WJ-163/p/5899770.html
Copyright © 2011-2022 走看看