Hibernate选择题总结

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

A.increment可以用于类型为long、short或byte的主键

B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库

C.sequence用于如Oracle、SQL Server等支持序列的数据库

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

解析:正确答案选择C,因为Oracle不支持序列

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

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

B.Session的flush( )方法是刷新缓存的方法

C.在执行Session的commit( )方法之前不会调用Session的flush( )方法

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

解析:正确答案选择AB,因为Session.commit之前肯定会调用它的flush方法,所以C选项错误.在编写代码时我们没有手动在commit之前调用flush()方法,而底层会自动调用,所以D选项也错误

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

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 d from cn.jbit.demo.entity.Dept d

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

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

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

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

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

解析:正确答案选择AD,BC选项正好和AD选项颠倒,所以BC选项错误

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

A.setParameter( )方法用于绑定任意类型的参数

B.setParameter( )有重载的方法

C.setProperties( )有重载的方法

D.setProperties( )方法用于绑定命名参数

解析:正确答案选择ABCD

6.在Hibernate中,关于以下映射配置,说法错误的是( )。

<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表的主键名

解析:正确答案选择D,因为<many-to-one>标签中的column属性值DEPTNO是EMP表的外键名

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

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

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

C.<set>标签有inverse属性

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

解析:正确答案选择ACD,因为<many-to-one>标签没有inverse属性

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

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

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

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

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

解析:正确答案选择BD,因为< set>标签中lazy属性可选值:true、extra和false,<<many-to-one>标签中lazy属性可选值:true、proxy和no-proxy

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

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

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

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

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

解析:正确答案选择D,因为<component>标签没有id属性

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

A.<sqlMapConfig>

B.<configuration>

C.<setting>

D.<environments>

解析:正确答案选择B

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

A.ExecutorType.SIMPLE

B.ExecutorType.BATCH

C.ExecutorType.EXECUTE

D.ExecutorType.REUSE

解析:正确答案选择ABD

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

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

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

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

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

解析:正确答案选择CD,因为session.clear()用于清空缓存,session.flush()用于刷新缓存

13.关于HQL的连接查询,说法错误的是( )。

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用于迫切右外连接

解析:正确答案选择D,因为没有迫切右外连接

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

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

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

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

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

解析:正确答案选择CD,A选项Hibernate支持批量插入,B选项使用JDBC API进行批量操作时,数据不会被加载到Session缓存

15.关于HQL的聚合函数使用,说法正确的是( )。

A.select count(*) from Dept d用于统计部门个数

B.select sum(e.salary) from Emp e用于汇总员工工资总额

C.select max(e.hiredate) from Emp e用于找到最新入职的员工的入职时间

D.select min(e.hiredate) from Emp e用于找到最早入职的员工的入职时间

解析:正确答案选择ABCD

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

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

B.elements( )获取集合中的所有元用于素

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

D.in关键字与“=any”意思相同

解析:正确答案选择C,因为any关键字用于子查询语句返回某一条记录

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

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

B.SQLQuery是一个接口,继承了Query接口

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

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

解析:正确答案选择ABC,D选项使用SQL语句也可以进行命名查询

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

A.CLOB类型只能映射为java.lang.String

B.BLOB类型可以映射为java.sql.Blob

C.BLOB类型可以映射为byte[]

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

解析:正确答案选择BCD,因为CLOB类型也可以映射为java.sql.Clob

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

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

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

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

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

解析:正确答案选择CD,因为C选项Restrictions.disjunction( )方法用于指定多个逻辑或,Restrictions.in( )方法能用于数组也可以用于集合

20.在Hibernate中,关于注解说法正确的是( )。

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

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

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

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

解析:正确答案选择ABD,因为@Transient用于忽略该属性,不需要持久化到数据库

21.下列关于同义词的说法,选项正确的是( )。

A.只能为表创建同义词,不能为视图创建同义词

B.同义词只能用于引用其他用户创建的表

C.公有同义词和私有同义词 对同一个表可以同名

D.使用Drop Synonym语句删除同义词的同时,同义词引用的表也无效

解析:正确答案C,A选项视图也可以创建同义词,B选项同义词也可以用于引用当前用户创建的表

22.评估CREATE TABLE 语句:

CREATE TABLE products

(

product_id NUMBER(6) CONSTRAINT prod_id_pk PRIMARY KEY,

product_name VARCHAR2(15)

)

下列关于prod_id_pk选项正确的是( )。

A.可以被创建,但需要唯一索引用手工创建

B.可以被创建并且会自动创建唯一索引

C.可以被创建并且会自动创建非唯一索引

D.可以被创建但不可以使用,因为没有指定索引

解析:正确答案选择B,A选项可以被创建,自动会创建唯一索引,C选项自动会创建唯一索引,D选项可以被创建并且可以使用,自动会创建唯一索引

23.下列创建序列的SQL语句:

CREATE SEQUENCE seq1

START WITH 100

INCREMENT BY 10

MINVALUE 1

MAXVALUE 200

CYCLE

NOCACHE;

序列seq1的生成的值已经到最大值200,再执行下列语句:

SELECT seq1.nextval FROM dual;

下列显式正确值的选项是( )。

A.1

B.10

C.100

D.报错

解析:正确答案选择A

24.A_oe和A_hr是数据库中的2个用户,A_oe下有一个表Orders,执行下列语句如下:

CREATE ROLE r1;  --System下

GRNAT SELECT,INSERT ON A_oe.orders to r1;   --A_oe模式下

GRANT r1 to A_hr;   --System模式下

GRANT SELECT ON A_oe.orders To A_hr;  --A_oe模式下

REVOKE SELECT ON A_oe.orders FROM A_hr;

执行上面语句后结果正确的是( )。

A.A_hr能够查询A_oe.orders表

B.A_hr不能够查询A_oe.orders表

C.REVOKE语句将撤销A_hr的SELECT权限同时也从r1角色撤销SELECT权限

D.REVOKE语句将报错,因为SELECT权限已经被r1角色授予

解析:正确答案选择A'

25.对于视图,下列语句正确的是( )。

A.有列别名的视图不能被修改

B.一个复杂的视图定义中使用子查询不能包含聚合(分组)函数和连接

C.如果一个视图定义中包含DISTINCT关键字,则不能够通过视图进行删除

D.创建视图语法中OR REPLACE 选项被使用,目的是在没有删除视图的情况下修改已存在的视图定义。

解析:正确答案选择CD

Hibernate选择题总结的更多相关文章

  1. Hibernate考试选择题解析

    1.在Hibernate中,以下关于主键生成器说法错误的是(AC). A.increment可以用于类型为long.short或byte的主键(byte类型不可以) B.identity用于如SQL ...

  2. hibernate内部测试题(附赠答案)

    一.选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分) 1.在Hibernate中,以下关于主键生成器说法错误的是( ). A.increment可以用于类型为long.short或by ...

  3. hibernate多对多关联映射

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  4. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

  5. hibernate多对一双向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  6. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

  7. Hibernate中事务声明

    Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...

  8. spring applicationContext.xml和hibernate.cfg.xml设置

    applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  9. [原创]关于Hibernate中的级联操作以及懒加载

    Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...

随机推荐

  1. 【python环境配置1】 环境变量与常用模块

    1. 安装python27 2. 配置环境变量 找到python.exe的安装文件夹,复制路径(C:\python27\Arcgis10.2): 将该路径粘贴到 "控制面板\系统和安全\系统 ...

  2. Java--Stream,NIO ByteBuffer,NIO MappedByteBuffer性能对比

    目前Java中最IO有多种文件读取的方法,本文章对比Stream,NIO ByteBuffer,NIO MappedByteBuffer的性能,让我们知道到底怎么能写出性能高的文件读取代码. pack ...

  3. JDK,JRE,JVM分别是什么?

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工具,将相关 ...

  4. 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...

  5. java必备基础知识点

    Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...

  6. 【GOF23设计模式】工厂模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_简单工厂模式详解.面向对象设计原则.开闭原则.依赖反转原则.迪米特法则  没有工厂模式的情况 package com.te ...

  7. Snap.svg – 现代 Web 开发必备的 JavaScript SVG 库

    SVG 是一种很好的 Web 技术方案,可以用来创建互动,在任何大小的屏幕上都会很好看.与分辨率无关的矢量图形.而这里推荐的 Snap.svg 这个 JavaScript 可以让你像 jQuery 操 ...

  8. 如何面试前端工程师:GitHub 很重要

    编者注:下面这篇文章从面试官的角度介绍到面试时可能会问到的一些问题. 我在Twitter和Stripe的一部分工作内容是面试前端工程师.其实关于面试你可能很有自己的一套,这里我想跟你们分享一下我常用的 ...

  9. asp.net mvc 简易通用自定义Pager实现分页

    asp.net mvc 自定义Pager实现分页 Intro 一个WEB应用程序中经常会用到数据分页,本文将实现一个简单通用的分页组件,包含一个 PagerModel (用来保存页码信息),一个 Ht ...

  10. js数组中数字从小到大排列

    function findMin(start,arr){ var iMin = 99999; var iMinIndex = -1; for(var i = start;i<arr.length ...