zoukankan      html  css  js  c++  java
  • Hibernate笔试总结


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

      Aincrement可以用于类型为longshortbyte的主键。

      Bidentity用于如SQL ServerDB2MySQL等支持标识列的数据库。

      Csequence用于如OracleSQL Server等支持序列的数据库。

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

    解析:A  int相同   

       C  SQL Server无序列


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

      A.当事务提交时,会发生脏检查

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

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

      D.编写代码时,调用commit( )方法之前要调用flush( )方法

    解析:C.commit是tx事务的方法  事务提交前必须调用

       D.没有手动写过

    刷新缓存:刷新缓存的事情就是脏检查

    两种方式:1.事务提交    2.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

    解析:很明显。


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

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

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

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

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

    解析:B返回Iterate接口

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

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

    解析:D是Emp表的外键


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

      A.inverse属性有两个值:true、false

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

      C.<set>标签有inverse属性

      D.inverse属性用于指定维护关联关系的那一方

    解析:

        inverse:维护关联关系

         true: 自己不维护关联关系,对方维护

         false:自己维护关联关系

      <many-to-one>无inverse属性


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

      A.<class>标签中lazy属性可选值:true、false

      B.<set>标签中lazy属性可选值:true、proxy和no-proxy   无true

      C.< set>标签中lazy属性可选值:trueextra和false

      D.<many-to-one>标签中lazy属性可选值:proxy、true和false 

    解析:  

      类级别  true(默认),false

          一对多和多对多 true(default),false,extra(加强延迟加载)

         多对一(没有set)  proxy(default),no-proxy,false


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

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

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

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

      D.<component>标签有id、name、class属性

    解析:如图所示


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

      A.<sqlMapConfig>    

      B.<configuration>    

      C.<setting>         

      D.<environments>    MyBatis中连接数据库的根标签


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

      A.ExecutorType.SIMPLE

      B.ExecutorType.BATCH

      C.ExecutorType.EXECUTE

      D.ExecutorType.REUSE


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

      A.Hibernate缓存一般分为三类:一级缓存、二级缓存和查询缓存

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

      C.Session的clear( )方法用于刷新缓存

      D.Session的flush( )方法用于从缓存中清除所有持久化对象

    解析:CD刚好相反


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

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

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

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

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

    解析:A.HQL也是一种批量处理的一种方式。

        B.只有session批量处理建立在缓存的基础上


    16关于HQL子查询中,说法错误的是(C)。

      Asize( )或size用于获取集合中元素的数目

      Belements( )获取集合中的所有元用于素

      Cany关键字用于子查询语句返回所有记录

      Din关键字与“=any”意思相同

    解析:any返回单条记录。


    17关于原生SQL查询和命名查询,说法正确的是(ABC)。

      A执行原生SQL,需使用SQLQuery对象

      BSQLQuery是一个接口,继承了Query接口

      CHibernate支持在映射文件中定义字符串形式的查询语句,这样的语句是命名查询语句

      D.命名查询语句只能是HQL语句,不能是SQL语句

    解析:原生sql也可命名查询


    18 Hibernate中,关于映射Oracle中的BLOB和CLOB类型的方法,说法正确的是(BCD)。

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

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

      CBLOB类型可以映射为byte[]

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

    解析:A可映射为java.sql.Clob


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

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

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

      CRestrictions.disjunction( )方法用于指定多个逻辑或

      D.Restrictions.in( )方法只能用于数组


    总结:最穷不过要饭,不死终会出头,很强势!!!

  • 相关阅读:
    code of C/C++(2)
    code of C/C++ (1)
    dll 的编写和使用
    Python基础练习-数据类型与变量part2
    Python基础练习-数据类型与变量
    python基础练习-循环
    Linux grep
    nginx反向代理
    正则表达式
    Linux samba ing
  • 原文地址:https://www.cnblogs.com/hq-123/p/5899897.html
Copyright © 2011-2022 走看看