Hibernate 测试题Word文档下载推荐.docx
《Hibernate 测试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Hibernate 测试题Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
newConfiguration().configure().buildSessionFactory();
Sessionsession=sf.openSession();
Medalmedal=newMedal();
medal.setOwner("
ShenBaozhi"
);
medal.setSport("
TableTennis-Women'
sSingles"
medal.setType("
GoldMedal"
session.save(user);
session.close();
}
A.配置文件配置有误
B.没有在配置文件中包含对映射文件的声明
C.映射文件配置有误
D.没有开启事务
5.下列属于多对一关系的是(bd)。
A.书和作者
B.手机和生产厂家
C.用户和发布的出租信息
D.士兵和班长
6.下面是某系统中的两个实体类,依此可以得知(b)。
publicclassWage{//月工资实体类
privateLongwid;
privateStringempName;
//雇员姓名
privateStringmonth;
//月份
//Getter&
Setter
……
publicclassWageItem{//工资项
privateWagewage;
privateLongiid;
privateStringitemName;
//项目名称,如基本工资、职位津贴等
privateStringamount;
//数额
A.Wage和WageItem间存在单向一对多的关联
B.Wage和WageItem间存在单向多对一的关联
C.Wage和WageItem间存在双向一对多的关联
D.Wage和WageItem间存在双向多对一的关联
7.两实体类代码如下:
其中的WageItem实体类有如下配置,其中空白处应填入的代码是(a)。
<
classname="
WageItem"
table="
fin_wage_item"
idname="
iid"
column="
wi_id"
type="
java.lang.Long"
>
generatorclass="
native"
/>
/id>
propertyname="
itemName"
wi_name"
type="
java.lang.String"
amount"
wi_amount"
java.lang.Double"
!
--配置wage属性-->
______________________
/class>
A.<
many-to-onename="
wage"
wi_wage_id"
class="
Wage"
B.<
one-to-manyname="
C.<
setname="
keycolumn="
one-to-manyclass="
/set>
D.<
wi_wage_id"
many-to-oneclass="
8.已知系统中TBL_USER表对应的实体类是TblUser,下列HQL语句中正确的是
()。
A.fromTbl_User
B.select*fromtbluser
C.selectTblUserfromTblUser
D.fromTblUsertwheret.age=15
9.对下面代码中存在的错误,说法不正确的是(d)。
Stringhql="
fromTblUseruwhereu.status=@status"
;
//<
1>
Queryquery=session.createQuery();
2>
query.setNamedParameter("
:
status"
"
"
3>
returnquery.executeQuery(hql);
4>
A.第一行中的命名参数“@status”应该是“:
status”
B.第二行createQuery函数应该传入hql作为参数
C.第三行命名参数名称“:
status”应该是“status”
D.第四行应该是“returnquery.list(hql);
”
10.下面代码的执行效果是(c)。
fromTblStudentsorderbys.scoreasc"
Queryquery=session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(5);
returnquery.list();
A.返回分数最高的五个学生
B.返回分数最高的六个学生
C.返回分数最低的五个学生
D.返回分数最低的六个学生
11.下面HQL语句的含义是(D)。
selectstu
fromTblStudentstu
wherestu.score>
(selectavg(score)fromTblStudent)
A.查询所有学生的平均分
B.查询得分大于平均分的学生的成绩
C.查询得分最高的学生
D.查询得分大于平均分的学生
12.假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现
(C)
Sessionsession=sessionFactory.openSession();
Customercustomer=(Customer)session.get(Customer.class,newLong
(1));
IteratororderIterator=customer.getOrders().iterator();
A.编译出错
B.编译通过,并正常运行
C.编译通过,但运行时抛出异常
D.运行时输出“session.open”
13.选出不是Expression方法的选项(D
A.eq()
B.gt()
C.like()
D.isNULL()
14.与下面代码效果相同的HQL语句是(A)。
Criteriacriteria=session.createCriteria(User.class);
criteria.add(Restrictions.like("
name"
admin%"
));
Listresult=criteria.list();
A.fromUserwherenamelike'
admin%'
B.fromUserwherenamelike'
%admin%'
C.fromnamewhereRestrictionslike'
D.selectu.namefromUserasuwhereu.Restrictionslike'
15.执行下面代码返回的结果为(A)。
criteria.addOrder(Order.desc("
id"
A.以id降序排列的User对象列表
B.以id升序排列的User对象列表
C.返回Order为id的User对象的列表
D.不返回对象
16.下面代码能够返回房屋表中第51行数据后的20行数据的是(B)。
A.Criteriacriteria=session.createCriteria(House.class);
Criteria.setFirstResult(51);
B.Criteriacriteria=session.createCriteria(House.class);
criteria.setMaxResult(20);
C.Criteriacriteria=session.createCriteria(House.class);
D.Criteriacriteria=session.createCriteria(House.class);
Criteria.setFirst(51);
criteria.setMax(20);
17.下面关于Hibernate关联映射说法错误的是()。
A.配置单项多对一关联映射,在配置文件中需要使用<
many-to-one>
标签
B.面向对象领域的关联关系可以分为单向一对多或者单向多对一
C.人和手机号码之间的关系是一对多关系
D.cascade属性描述了级联操作的规则
18.如果数据库是oracle或者db2,则generator属性值不可以使用(B)。
A.native
B.identity
C.hilo
D.sequence
19.Hibernate增加数据时可以调用Session的(a)方法。
A.save()
B.update()
C.delete()
D.get()
20.Hibernate对JDBC访问数据库的代码进行了封装,从而大大的简化了数据访问层的代码,它是针对三层架构中(c)的解决方案。
A.表现层
B.业务逻辑层
C.持久化层
D.数据库系统
21.使用Hibernate技术实现数据库持久化时,(d)内容不在Hibernate配置文件中。
A.数据库连接信息
B.数据库类型
C.show_sql参数
D.数据库表和实体的映射信息
22.级联删除时,cascade属性是(c)。
A.all
B.save
C.delete
D.save-update
23.以下不属于Cascade的属性取值的有(b)。
24.Inverse属性值为(c)标识主控方。
B.false
C.true
D.none
25.从性能考虑,Inverse属性值通常设置为(b)。
D.None
26.数据库表account对应实体类为Account类,以下HQL语句错误的有(d)。
A.select*fromAccount
B.FromAccount
C.FromAccountasmodel
D.Select*fromaccount
27.setMaxResult(3)方法中,参数值3是指(C)。
A.从第3条记录开始
B.从第4条记录开始
C.查询3条记录
D.查询4条记录
28.关于HQL查询,下列说法中错误的是(A)。
A.HQL查询的select子句中必须区分大小写
B.HQL支持统计函数
C.HQL支持仅查询对象的某几个属性,并将查询结果保存在Object数组中
D.HQL语句可以实现类似于PreparedStatement的效果
29.在Hibernate中,下面代码实现了对Account实体中accountName属性的模糊查询,则下列说法正确的是(B)。
Sessionsession=this.getSession();
Stringhql="
fromAccountmodelwheremodel.accountNamelike?
//
(1)
Queryquery=session.createQuery(hql);
//
(2)
query.setString(0,"
%张%"
//(3)
Listlist=query.list();
//(4)
A.第
(1)行中,Account与model之间必须有as关键字
B.第
(2)行中没有错误
C.第(3)行应该为:
张飞"
D.第(4)行应该为:
Listlist=query.executeQuery();
30.Criteria查询通过面向对象化的设计将数据查询条件封装为一个对象,下列写法正确的是(D)。
A.Criteriacriteria=session.createQuery(Account.class)
List<
Account>
list=criteria.list();
B.Criteriacriteria=session.addCriteria(Account.class)
C.Criteriacriteria=session.queryCriteria(Account.class)
D.Criteriacriteria=session.createCriteria(Account.class)
31.将某个对象从Session的一级缓存中清除的方法是(C)。
A.close()
B.clear()
C.evict()
D.flush()
32.在set节点中设置"
outer-join="
true"
,当调用Session的find方法时采用(C)。
A.立即检索
B.延迟检索
C.迫切左外连接检索
D.批量检索
33.类级别的默认检索是(a)。
34.延迟检索返回代理类的实例不具备的特征有(d)。
A.在Hibernate运行时动态生成
B.当Hibernate创建代理类实例时,仅初始化OID属性,其他属性均为null,占用内存空间较少
C.当应用程序第一次访问代理类实例时,Hibernate将初始化代理类的实例,在初始化的过程中执行select语句并从数据库中加载对象的所有数据。
D.当访问getId访法时,Hibernate会初始化代理类的实例,在初始化的过程中执行select语句,并从数据为中加载对象的所有数据。
35.由持久化状态向游离状态转变的方法不包括(C)。
C.lock()
D.evict()
36.由持久化状态向游离状态转变的方法不包括(C)。
A.临时状态
B.无引用状态
C.持久化状态
D.游离状态
37.对于以下程序,Customer对象在第几行变为游离状态?
(D)
Sessionsession1=sessionFactory.openSession();
Transactiontx1=session1.beginTransaction();
Customercustomer=newCustomer();
//1
customer.setName(\"
Tom\"
session1.save(customer);
//2
mit();
//3
session1.close();
//4
A.第
(1)行
B.第
(2)行
C.第(3)行
D.第(4)行
38.关于HQL与SQL,以下哪些说法正确?
(B)。
A.HQL与SQL没什么差别
B.HQL面向对象,而SQL操纵关系数据库
C.在HQL与SQL中,都包含select,insert,update,delete语句
D.HQL仅用于查询和删除数据,不支持insert,update语句
39.下面关于hibernate核心接口说明错误的是?
A.Configuration接口:
配置Hibernate,根据其启动hibernate,创建SessionFactory对象
B.SessionFactory接口:
负责保存、更新、删除、加载和查询对象,是线程不安全的
C.Query和Criteria接口:
执行数据库的查询
D.Transaction接口:
管理事务
40.下面关于Hibernate说法正确的是(BD)。
(选择两项)
A.Hibernate是ORM的一种实现方式
B.Hibernate不要JDBC的支持
C.属于控制层
D.属于数据持久层
41.下面关于Hibernate中Session的说法正确的是(AD)。
A.Session是轻量级的,可以随意的创建和销毁
B.Session是重量级的,不能随意的创建和销毁
C.Session是线程安全的
D.Session不是线程安全的
42.下面关于Hibernate中load和get方法说法正确的是(D)。
A.这两个方法是一样的,没有任何的区别
B.这两个方法不一样,laod先找缓存,再找数据库
C.这两个方法不一样,get先找缓存,再找数据库
D.以上说法都不对
43.下面关于Hibernate中Transaction的使用说法正确的是(B)。
A.Transaction是可有可无的
B.Transaction在做查询的时候是可选的
C.Transaction在做删除的时候是可选的
D.Transaction在做修改的时候是可选的
44.从SessionFactory中得到Session的方法是(A)。
A.getSession
B.openSession
C.currentSession
D.createSession
45.关于Hibernate中关系的说话正确的是(A)。
A.一对多必须用Set来映射
B.多对一必须用Set来映射
C.一对多可以用Set来映射,也可以用List、Map来映射
D.多对一可以用Set来映射,也可以用List、Map来映射
46.下面关于数据持久化概念的描述,错误的是(A)。
A.保存在内存中数据的状态是临时状态
B.持久状态的数据在关机后数据依然存在
C.数据可以由持久状态转换为临时状态
D.将数据转换为持久状态的机制称为数据持久化
47.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(A)。
A.配置客户和订单关联的cascade属性为save-update
B.配置客户和订单关联的cascade属性为all
C.设置多对一关联的inverse属性为true
D.设置多对一关联的inverse属性为false
48.以下关于SessionFactory的说法哪些正确?
(C)。
A.对于每个数据库事务,应该创建一个SessionFactory对象
B.一个SessionFactory对象对应多个数据库存储源
C.SessionFactory是重量级的对象,不应该随意创建。
如果系统中只有一个数据库存储源,只需要创建一个
D.SessionFactory的load()方法用于加载持久化对象
49.在Hibernate关系映射配置中,inverse属性的含义是(A)。
A.定义在<
one-to-many>
节点上,声明要负责关联的维护
B.声明在<
set>
节点上,声明要对方负责关联的维护
C.定义