Hibernate考试真题精选.docx
《Hibernate考试真题精选.docx》由会员分享,可在线阅读,更多相关《Hibernate考试真题精选.docx(24页珍藏版)》请在冰点文库上搜索。
Hibernate考试真题精选
[单项选择题]
1、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()
A.配置客户和订单关联的cascade属性为save-update
B.配置客户和订单关联的cascade属性为all
C.设置多对一关联的inverse属性为true
D.设置多对一关联的inverse属性为false
参考答案:
B
[多项选择题]
2、在Hibernate映射文件中,关于标签说法正确的是()。
A.<component>标签用来映射组件类
B.<component>标签通过<parent>指定组件类所属的整体类
C.<component>标签通过<property>指定组件类的属性
D.<component>标签有
id、name、class属性
参考答案:
A,B,C
[多项选择题]
3、在MyBatis中,ExecutorType的值包括()。
A.ExecutorType.SIMPLE
B.ExecutorType.BATCH
C.ExecutorType.EXECUTE
D.ExecutorType.REUSE
参考答案:
A,B,D
[单项选择题]
4、下面创建Criteria对象的语句中正确的是()
A.Criteriac=
query.createCriteria();
B.Criteriac=
query.addCriteria();
C.Criteriac=
session.createCriteria();
D.Criteriac=
session.createCriteria(
User.class);
参考答案:
D
[多项选择题]
5、关于Hibernate批量处理数据说法正确的是()。
A.使用HQL进行批量操作,Hibernate不支持批量插入
B.使用JDBCAPI进行批量操作,SQL语句中涉及的数据会被加载到Session缓存,占用内存空间
C.使用Session进行批量操作,数据会被加载到Session缓存,需注意刷新并清空缓存
D.使用Session进行批量操作,适用于需要通过代码处理的复杂的业务逻辑场景
参考答案:
C,D
[单项选择题]
6、下面关系Hibernate对象的状态说话正确的是()
A.Hibernat的对象只有一种状态
B.Hibernat的对象有2种状态
C.Hibernat的对象有3种状态
D.Hibernat的对象有4种状态
参考答案:
C
[单项选择题]
7、关于HQL子查询中,说法错误的是()。
A.size()或size用于获取集合中元素的数目
B.elements()用于获取集合中的所有元素
C.any关键字用于子查询语句返回所有记录
D.in关键字与“=any”意思相同
参考答案:
C
[单项选择题]
8、J2EE中往往使用()封装业务实体,()封装业务逻辑,()调用
A.实体
Bean、会话
Bean、实体
Bean、会话Bean
B.实体
Bean、会话
Bean、会话
Bean、实体Bean
C.会话
Bean、实体
Bean、实体
Bean、会话Bean
D.会话
Bean、实体
Bean、会话
Bean、实体Bean
参考答案:
B
[多项选择题]
9、在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
参考答案:
B,C,D
[单项选择题]
10、状态SessionBean和无状态SessionBean的区别说法正确的是()
A.无状态SessionBean要保存客户端的状态,同客户端是一对一
B.有状态SessionBean要保存客户端的状态,同客户端是一对一
C.他们都要保存客户端的状态,同客户端是一对一
D.以上说法都不对
参考答案:
B
[多项选择题]
11、在Hibernate中,关于注解说法正确的是()。
A.@Id用于声明持久化类的唯一标识,对应于数据表中的主键
B.@Cloumn用于将属性映射到列
C.@Transient用于忽略该属性,需要持久化到数据库
D.@GeneratedValue用于定义主键值的生成策略
参考答案:
A,B,D
[单项选择题]
12、下面关于Hibernate的说法,错误的是()
A.Hibernate是一个“对象-关系映射”的实现
B.Hibernate是一种数据持久化技术
C.Hibernate是JDBC的替代技术
D.使用Hibernate可以简化持久化层的编码
参考答案:
C
[单项选择题]
13、在EJB3.0中用来保存一个对象的方法是()
A.save
B.update
C.persist
D.create
参考答案:
C
[单项选择题]
14、评估CREATETABLE语句:
选项正确的是()。
A.可以被创建,但需要唯一索引用手工创建
B.可以被创建并且会自动创建唯一索引
C.可以被创建并且会自动创建非唯一索引
D.可以被创建但不可以使用,因为没有指定索引
参考答案:
B
下列关于prod_id_pk
[单项选择题]
15、在J2EE中,EJB组件必须在()容器中才能运行
A.Applet
B.客户端
C.Web
D.EJB
参考答案:
D
[单项选择题]
16、A_oe和A_hr是数据库中的2个用户,A_oe下有一个表Orders,执行下
列语句如下:
正确的是()。
A.A_hr能够查询A_
oe.orders表
B.A_hr不能够查询A_
oe.orders表
C.REVOKE语句将撤销A_hr的SELECT权限同时也从r1角色撤销SELECT权限
D.REVOKE语句将报错,因为SELECT权限已经被r1角色授予
参考答案:
A
[单项选择题]
17、以下程序的打印结果是()
A.运行出错,抛出异常
B.打印false
C.打印true
D.编译出错
参考答案:
C
[填空题]18请简述Hibernate与jdbc的联系。
参考答案:
Hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用hibernate的配置文件实现,本质是封装了jdbc),和查询,删除等代码,都用面向对象的思想用代码联系起来,Hibernate通过hbm配置文件(或注解)把持久化类的字段和数据库的字段关联起来比如数据库的id。
HQL语句也是面向对象的,它的查询语句不是查询数据库而是查询类的。
[单项选择题]
19、对于以下程序,Customer对象在第()行变为游离状态
A.line1B.line2
C.line3
D.line4
参考答案:
D[填空题]20请简述Hibernate是如何实现分页的?
如果不使用Hibernate提供的方法实现分页功能,则采用什么方式分页?
参考答案:
[单项选择题]
21、假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现()
A.编译出错
B.编译通过,正常运行,不显示任何信息
C.编译通过,正常运行,并显示出结果
D.编译通过,但运行时抛出异常
参考答案:
D更多内容请访问《睦霖题库》微信公众号
[单项选择题]
22、ORM的好处包括()
A.能进行关系对象的映射
B.具有控制器功能
C.能在服务器端保存客户端状态
D.向DTO一项能传递数据
参考答案:
A
[填空题]23试述load()和get()的区别。
参考答案:
1.从返回结果上对比:
L.oad方式检索不到的话会抛出
org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null
2.从检索执行机制上对比:
get方法和find方法都是直接从数据库中检索而load方法的执行则比较复杂首先查找session的persistentContext中是否有缓存,如果有则直接返回如果没有则判断是否是lazy,如果不是直接访问数据库检索,查到记录返回,查不到抛出异常如果是lazy则需要建立代理对象,对象的initialized属性为false,target属性为null在访问获得的代理对象的属性时,检索数据库,如果找到记录则把该记录的对象复制到代理对象的target上,并将initialized=true,如果找不到就抛出异常。
H.ibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
[单项选择题]
24、如果不确定所寻找对象的持久化标识符,则需要使用查询,使用Session的()方法
A.createQuery()
B.query()
C.queryAll()
D.queryObject()
参考答案:
A
[多项选择题]
25、在持久化层,对象分为哪些状态?
()
A.临时状态
B.独立状态
C.游离状态
D.持久化状态
参考答案:
A,C,D
[单项选择题]
26、对原生SQL查询的控制是通过()接口进行的
A.SQLQuery
B.Session
C.List
D.Query
参考答案:
A
[单项选择题]
27、假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况?
()
A.编译出错
B.编译通过,并正常运行
C.编译通过,但运行时抛出异常
参考答案:
C
[单项选择题]
28、使用Hibernate的QBC查询,要使用SQL中的类似selectcount(*)fromtablename方法求出记录数,必须使用()类
A.Restrictions
B.Projections
C.Criteria
D.Criteron
参考答案:
B
[多项选择题]
29、以下关于SessionFactory的说法哪些正确?
()
A.对于每个数据库事务,应该创建一个SessionFactory对象
B.一个SessionFactory对象对应一个数据库存储源。
C.SessionFactory是重量级的对象,不应该随意创建。
如果系统中只有一个数据库存储源,只需要创建一个。
D.SessionFactory的load()方法用于加载持久化对象
参考答案:
B,C
[单项选择题]
30、下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是
()
A.配置文件配置有误
B.没有在配置文件中包含对映射文件的声明
C.没有对持久化操作捕捉异常
D.没有开启事务
参考答案:
D
[单项选择题]
31、<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?
()
A.none
B.saveC.delete
D.save-update
参考答案:
D
[单项选择题]
32、在Hibernate关系映射配置中,inverse属性的含义是()。
A.定义在<one-to-many>节点上,声明要负责关联的维护
B.声明在<set>节点上,声明要对方负责关联的维护
C.定义在<one-to-many>节点上,声明对方要负责关联的维护
D.声明在<set>节点上,声明要负责关联的维护
参考答案:
B
[填空题]33如何优化Hibernate查询性能?
参考答案:
1)lazy=true,hibernate3开始已经默认是lazy=true了;
lazy=true时不会立刻查询关联对象,只有当需要关联对象(访问其属性,非id字段)时才会发生查询动作。
2)二级缓存,在对象更新,删除,添加相对于查询要少得多时,二级缓存的应用将不怕n+1问题,因为即使第一次查询很慢,之后直接缓存命中也是很快的。
[单项选择题]
34、以下哪一种检索策略利用了外连结查询()
A.立即检索
B.延迟检索
C.迫切左外连结检索
D.迫切右外连结检索
参考答案:
C
[单项选择题]
35、下面关于hibernate核心接口说明错误的是()
A.Configuration接口:
配置Hibernate,根据其启动hibernate,创建SessionFactory对象;
B.SessionFactory接口:
负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;
C.Query和Criteria接口:
执行数据库的查询;
D.Transaction接口:
管理事务。
参考答案:
B[单项选择题]
36、实现equals和hashCode最显而易见的作用是()
A.比较两个对象标识符的值
B.比较数据库的两条数据
C.比较两个组建是否部署在同一个应用服务器上
D.对象与字段的映射
参考答案:
A
[单项选择题]
37、下面是某系统中的两个实体类,依次可以得知()
A.Wage和WageItem间存在单向一对多的关联
B.Wage和WageItem间存在单向多对一的关联
C.Wage和WageItem间存在双向一对多的关联
D.Wage和WageItem间存在双向多对一的关联
参考答案:
B
[单项选择题]
38、()元素把子对象的一些元素与父类对应的表的一些字段映射起来
A.Component
B.Element
C.Attribute
D.ActionForm
参考答案:
A[单项选择题]
39、下面()不属于关系-对象映射的映射信息。
A.程序包名到数据库库名的映射
B.程序类名到数据库表名的映射
C.实体属性名到数据库表字段的映射
D.实体属性类型到数据库表字段类型的映射
参考答案:
A
[单项选择题]
40、假设实体映射时有一个()的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个”columnnotfound”的数据库错误
A.many-to-one
B.many-to-many
C.one-to-many
D.one-to-one
参考答案:
D
[填空题]41Hibernate继承映射有哪几种方式?
试对几种方式进行比较。
参考答案:
[多项选择题]
42、从持久化状态到临时状态转换的方法有()
A.evict()
B.clear()
C.close()
D.lock()
参考答案:
A,B,C[填空题]43在持久化层,对象分为哪些状态?
如何转换?
参考答案:
[多项选择题]
44、什么是Hibernate一级缓存()
A.Hibernate一级缓存是Session的缓存
B.Hibernate一级缓存是SessionFactory的缓存
C.第一级缓存为必需,不允许且事实上也无法被卸除
D.第一级缓存可以设置
参考答案:
A,C
[填空题]45试述Query接口list()与iterate()区别。
参考答案:
[多项选择题]
46、在Hibernate中,以下关于主键生成器说法错误的是()。
A.increment可以用于类型为
long、short或byte的主键
B.identity用于如
SQLServer、DB2、MySQL等支持标识列的数据库
C.sequence用于如
Oracle、SQLServer等支持序列的数据库
D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值
参考答案:
A,C
[多项选择题]
47、下面关于ORM的说法错误的是()
A.对象关系映射,让现实中的对象同数据库的表产生映射
B.对象关系映射,让类同表产生关系
C.对象关系映射,让类同记录产生关系
D.对象关系映射,让类中的属性同表中的列产生关系
参考答案:
A,C[多项选择题]
48、使用HQL查询所有部门信息,以下正确的是()。
A.fromDept
B.select*from
cn.jbit.demo.entity.Dept
C.selectDeptfrom
cn.jbit.demo.entity.Deptd
D.selectdfromDeptd
参考答案:
A,D
[单项选择题]
49、在Hibernate中,以下()不属于session的方法
A.close()
B.open()
C.update()
D.delete()
参考答案:
B
[多项选择题]
50、在HQL中,关于Query接口绑定参数的方法,说法正确的是()。
A.setParameter()方法用于绑定任意类型的参数
B.setParameter()有重载的方法
C.setProperties()有重载的方法
D.setProperties()方法用于绑定命名参数
参考答案:
A,B,C,D
[多项选择题]
51、下面关于Hibernate中Transaction的使用说法正确的是()
A.Transaction是可有可无的
B.Transaction在做查询的时候是可有可无的
C.Transaction在做修改的时候是可有可无的
D.Transaction在做修改的时候是必须的
参考答案:
B,D
[多项选择题]
52、在Hibernate映射文件中,关于inverse属性说法正确的是()。
A.inverse属性有两个值:
true、false
B.<many-to-one>标签有inverse属性
C.<set>标签有inverse属性
D.inverse属性用于指定维护关联关系的那一方
参考答案:
A,C,D
[多项选择题]
53、关于Hibernate中show_sql配置说法正确的是()
A.默认值为true
B.默认值为false
C.为true时表示在后台打印出SQL语句
D.为false表示在后台打印出SQL语句
参考答案:
B,C
[单项选择题]
54、从SessionFactory中得到Session的方法是()
A.getSession
B.openSession
C.currentSession
D.以上都不是
参考答案:
B
[多项选择题]
55、下列关于延迟加载说法正确的是()
A.lazy="true"表示采用延迟加载
B.lazy="false"表示采用延迟加载
C.Lazy默认情况下位true
D.Lazy默认情况下位false
参考答案:
A,C
[单项选择题]
56、Hibernate对JDBC访问数据库的代码做了封装,从而大大简化了数据访问的重复性代码,它是针对三层架构中()的解决方案
A.表现层
B.业务逻辑层
C.持久化层
D.数据库系统
参考答案:
C
[单项选择题]
57、Hibernate配置文件中,不包含下面的()。
A.
“对象-关系映射”信息
B.实体间关联的配置
C.show_sql等参数的配置
D.数据库连接信息
参考答案:
B
[多项选择题]
58、下面一对多关联的配置中,存在哪些错误()
A.inverse属性不可以设置为false
B.cascade属性不可设置为true
C.class="
com.x.entity.Order"应为type="
com.x.entity.Order"
D.column属性不可再<one-to-many>节点内设置
参考答案:
B,D
[多项选择题]
59、Hibernate对象从瞬时(即临时状态)到持久状态转换的方式有()
A.调用session的save方法
B.调用session的create方法
C.调用session的update方法
D.调用session的load方法
参考答案:
A,C
[多项选择题]
60、SessionBean分为以下哪几种类型()
A.持久
B.瞬时
C.有状态
D.无状态
参考答案:
C,D