Hibernate复习题1含答案.docx

上传人:b****6 文档编号:8888667 上传时间:2023-02-02 格式:DOCX 页数:19 大小:24.86KB
下载 相关 举报
Hibernate复习题1含答案.docx_第1页
第1页 / 共19页
Hibernate复习题1含答案.docx_第2页
第2页 / 共19页
Hibernate复习题1含答案.docx_第3页
第3页 / 共19页
Hibernate复习题1含答案.docx_第4页
第4页 / 共19页
Hibernate复习题1含答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Hibernate复习题1含答案.docx

《Hibernate复习题1含答案.docx》由会员分享,可在线阅读,更多相关《Hibernate复习题1含答案.docx(19页珍藏版)》请在冰豆网上搜索。

Hibernate复习题1含答案.docx

Hibernate复习题1含答案

美斯坦福在线考试系统荆州理工G3Hibernate

科目:

SCCEG3Hibernate总分:

100分时间:

60分钟

一、单选题(共45题,每题2分,说明:

选择一项正确的答案)

1、

下面关于Hibernate的说法,错误的是()

A、Hibernate是一个“对象-关系映射”的实现

B、Hibernate是一种数据持久化技术

C、Hibernate是JDBC的替代技术他是对JDBC做了轻量级的对象封装

D、使用Hibernate可以简化持久化层的编码

参考答案:

C

2、

在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()

A、配置客户和订单关联的cascade属性为save-update

B、配置客户和订单关联的cascade属性为all

C、设置多对一关联的inverse属性为true

D、设置多对一关联的inverse属性为false

参考答案:

B

详解

3、

下面一对多关联的配置中,存在哪些错误()

<setname="orders"inverse="false"cascade="true">

<one-to-manyclass="com.x.entity.Order"

column="customer_id"/>

</set>

A、inverse属性不可以设置为false

B、cascade属性不可设置为true

C、class="com.x.entity.Order"应为type="com.x.entity.Order"

D、column属性不可再<one-to-many>节点内设置

参考答案:

B

4、

下面创建Criteria对象的语句中正确的是()

A、Criteriac=query.createCriteria();

B、Criteriac=query.addCriteria();

C、Criteriac=session.createCriteria();

D、Criteriac=session.createCriteria(User.class);

参考答案:

D

5、

下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()

详解

A、动态的修改,如果为true,只改变有改变的属性

B、动态的修改,如果为true,只改变没有改变过的属性

C、动态的修改,如果为true,改变所有的属性

D、以上说法都错

参考答案:

A

6、

下面关系Hibernate对象的状态说话正确的是()临时持久化游离

A、Hibernat的对象只有一种状态

B、Hibernat的对象有2种状态

C、Hibernat的对象有3种状态

D、Hibernat的对象有4种状态

参考答案:

C

7、

Hibernate对象从瞬时到持久状态转换的方式有()。

A、调用session的save方法saveorupdat

B、调用session的create方法

C、调用session的update方法

D、调用session的load方法

参考答案:

A

8、

J2EE中往往使用____封装业务实体,____封装业务逻辑,____调用()

A、实体Bean、会话Bean、实体Bean、会话Bean

B、实体Bean、会话Bean、会话Bean、实体Bean

C、会话Bean、实体Bean、实体Bean、会话Bean

D、会话Bean、实体Bean、会话Bean、实体Bean

参考答案:

B

9、

EJB分为()三种类型

A、会话bean、实体bean、Webservice

B、会话bean、实体bean、消息驱动bean

C、Jsp、servlet、jsf

D、实现类、Home接口类、Object接口类

参考答案:

B

10、

有状态SessionBean和无状态SessionBean的区别说法正确的是()

详解

A、无状态SessionBean要保存客户端的状态,同客户端是一对一

B、有状态SessionBean要保存客户端的状态,同客户端是一对一

C、他们都要保存客户端的状态,同客户端是一对一

D、以上说法都不对

参考答案:

B

11、

有以下代码段,下面说法正确的是()p65

StringqlString="selectmodelfromStudentasmodelwhere

model.createDate=?

1";

(1)

Queryquery=em.createQuery(qlString);

(2)

query.setParameter(0,"2000-12-05");(3)

Listlist=q.list();(4)

A、第一行有错,必须为参数起个名字

B、第三行有错误,query.setParameter(0,

"2000-12-05")应为query.setParameter(1,"2000-12-05");

C、第四行没有错误

D、这些语句没有错误

参考答案:

B

12、

在EJB3.0中用来保存一个对象的方法是()

A、save

B、update

C、persist

D、create

参考答案:

C

13、

在J2EE中,Servlet和JSP组件必须在()容器中才能运行

A、Applet

B、客户端

C、Web

D、EJB

参考答案:

C

14、

在J2EE中,EJB组件必须在()容器中才能运行

A、Applet

B、客户端

C、Web

D、EJB

参考答案:

D

15、

在三层结构中,数据访问层承担的责任是()

A、定义实体类

B、数据的增删改查操作

C、业务逻辑的描述

D、页面展示和控制转发

参考答案:

B

16、

<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取(

)值

A、none

B、save

C、delete

D、save-update

参考答案:

D

17、

以下程序的打印结果是()

tx=session.beginTransaction();

Customerc1=(Customer)session.load(Customer.class,new

Long

(1));

Customerc2=(Customer)session.load(Customer.class,new

Long

(1));

System.out.println(c1==c2);

mit();

session.close();

A、运行出错,抛出异常

B、打印false

C、打印true

D、编译出错

参考答案:

C

18、

以下程序代码对Customer的name属性修改了两次:

tx=session.beginTransaction();

Customercustomer=(Customer)session.load(Customer.class,

newLong

(1));

customer.setName("Jack\");

customer.setName("Mike\");

mit();

执行以上程序,Hibernate需要向数据库提交()条update语句

A、0

B、1

C、2

D、3

参考答案:

B

19、

对于以下程序,Customer对象在第()行变为游离状态closeclearevictP82

Customercustomer=newCustomer();

customer.setName(\"Tom\");

Sessionsession1=sessionFactory.openSession();

Transactiontx1=session1.beginTransaction();//line1

session1.save(customer);//line2

mit();//line3

session1.close();//line4

A、line1

B、line2

C、line3

D、line4

参考答案:

D

20、

以下检索策略中,()利用了外连结查询

详解20

A、立即检索

B、延迟检索

C、迫切左外连结检索

D、迫切右外连结检索

参考答案:

C

21、

假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现()

Sessionsession=sessionFactory.openSession();

tx=session.beginTransaction();

Customercustomer=(Customer)session.get(Customer.class,new

Long

(1));

mit();

session.close();

IteratororderIterator=customer.getOrders().iterator();

A、编译出错

B、编译通过,正常运行,不显示任何信息

C、编译通过,正常运行,并显示出结果

D、编译通过,但运行时抛出异常

参考答案:

D

22、

在源代码中嵌入映射信息需要()

A、Annoation

B、hbm.xml

C、struts.xml

D、web.xml

参考答案:

A

23、

ORM的好处包括()

A、能进行关系对象的映射

B、具有控制器功能

C、能在服务器端保存客户端状态

D、向DTO一项能传递数据

参考答案:

A

24、

已知某个实例的持久化标识,可以使用Session的()方法来获取它

A、load()

B、loadAll()

C、getAllData()

D、init()

参考答案:

A

25、

如果不确定所寻找对象的持久化标识符,则需要使用查询,使用Session的()方法

 

A、createQuery()

B、query()

C、queryAll()

D、queryObject()

参考答案:

A

26、

使用Session的(),会把对象的状态从数据库中移除

A、delete()

B、remove()

C、clear()

D、removeAll()

参考答案:

A

27、

对原生SQL查询的控制是通过()接口进行的

A、SQLQuery

B、Session

C、List

D、Query

参考答案:

A

28、

可以把结果集映射的信息放在外部的(

)元素中,这样就可以在多个命名查询间或者通过setResultSetMapping()API来访问

A、<resultset>

B、<result>

C、<mapping>

D、<description>

参考答案:

A

29、

使用Hibernate的QBC查询,要使用SQL中的类似selectcount(*)from

tablename方法求出记录数,必须使用()类

A、Restrictions

B、Projections

C、Criteria

D、Criteron

参考答案:

B

30、

在Hibernate中,关于数据库的方言,下面说法正确的是()

A、可以不写数据库方言

B、数据库方言没有作用,可以随便写

C、有通用的数据库方言可以使用

D、数据方言对应于每个数据库,主要用于产生SQL语句

参考答案:

D

31、

下面不属于持久化的是()

A、把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来

B、把程序数据从数据库中读出来

C、从XML配置文件中读取程序的配置信息

D、把程序数据保存为文件

参考答案:

A

32、

下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是()

publicstaticvoidimain(String[]args){

SessionFactorysf=new

Configration().configure().buildSessionFactory();

Sessionsession=sf.openSession();

Medalmedal=newMedal();

medal.setOwner(“totong”);

medal.setType(“Goldmedal”);

session.save(user);

session.close();

}

A、配置文件配置有误

B、没有在配置文件中包含对映射文件的声明

C、配置文件配置有误

D、没有对持久化操作捕捉异常

E、没有开启事务

参考答案:

E

33、

已知wage.getItem().size()的值是1。

要想使执行session.update(wage)时自动执行session.update(wage.getItems().get(0)),必须配置(

A、<setname=”items”inverse=”true”cascade=”none”>…</set>

B、<setname=”items”inverse=”false”cascade=”none”>…</set>

C、<setname=”items”inverse=”true”cascade=”all”>…</set>

D、<setname=”items”inverse=”false”

cascade=”save-update”>…</set>

参考答案:

D

34、

在Hibernate关系映射配置中,inverse属性的含义是()。

A、定义在<one-to-many>节点上,声明要负责关联的维护

B、声明在<set>节点上,声明要对方负责关联的维护

C、定义在<one-to-many>节点上,声明对方要负责关联的维护

D、声明在<set>节点上,声明要负责关联的维护

参考答案:

B

35、

执行下面的hql查询,关于返回值的说法,正确的是()

selectu.username,u.userid

fromcom.scce.pojo.Useru

whereuisnotnull

A、语法错误,不能执行

B、返回一个类型为List的实例

C、返回一个数组

D、当返回结果只有一条时,返回一个数组

参考答案:

B

36、

以下哪一种检索策略利用了外连结查询()

A、立即检索

B、延迟检索

C、迫切左外连结检索

D、迫切右外连结检索

参考答案:

C

37、

POJO是()

A、PlainOldJavaObject

B、ProgrammingObjectJavaObject

C、PageOldJavaObject

D、PlainObjectJavaOld

参考答案:

A

38、

实现equals和hashCode最显而易见的作用是()

详解38

A、比较两个对象标识符的值

B、比较数据库的两条数据

C、比较两个组建是否部署在同一个应用服务器上

D、对象与字段的映射

参考答案:

A

39、

在源代码中嵌入映射信息需要()

A、XDoclet

B、EJB

C、Hibernate

D、Spring

参考答案:

A

40、

所有的Hibernate,除了()都支持空(null)语义

A、Collection

B、Element

C、Entity

D、NodeList

参考答案:

A

41、

()元素把子对象的一些元素与父类对应的表的一些字段映射起来

A、Component

B、Element

C、Attribute

D、ActionForm

参考答案:

A

42、

HQL不支持聚合函数有()

A、count(*)

B、avg(…)

C、count(…)

D、count(?

参考答案:

D

43、

假设实体映射时有一个()的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个”column

notfound”的数据库错误

A、many-to-one

B、many-to-many

C、one-to-many

D、one-to-one

参考答案:

D

44、

在Hibernate中,关于数据库的方言,下面说法正确的是()

A、可以不写数据库方言

B、数据库方言没有作用,可以随便写

C、有通用的数据库方言可以使用

D、数据方言对应于每个数据库,主要用于产生SQL语句

参考答案:

D

45、

下列属于多对一关系的是()

A、书和作者

B、手机和生产厂家

C、用户和发布的出租信息

D、士兵和班长

参考答案:

D

二、多选题(共5题,每题2分),说明:

选择多项正确的答案)

1、

从持久化状态到临时状态转换的方法有()[选三项]

A、evict()

B、clear()

C、close()

D、lock()

参考答案:

ABC

2、

有如下代码

DeptdeptOne=newDept();

deptOne.setDeptName("后勤部");

deptOne.setCreateDate("2001-03-02");

session.save(deptOne);

IntegerdeptId=deptOne.getDeptId();

deptOne=null;

下面说明正确的有()[选两项]

A、deptOne处于生命周期

B、deptOne生命周期结束

C、deptOne处于持久化状态

D、deptOne处于游离状态

参考答案:

AC

3、

Hibernate缓存主要从哪些方面发生作用()[选两项]见书P84

A、通过主键值加载数据

B、查询数据

C、立即加载

D、延迟加载

参考答案:

AD

4、

什么是Hibernate一级缓存()[选两项]

A、Hibernate一级缓存是Session的缓存

B、Hibernate一级缓存是SessionFactory的缓存

C、第一级缓存为必需,不允许且事实上也无法被卸除

D、第一级缓存可以设置

参考答案:

AC

5、

不适合放入Hibernate二级缓存的有()[选三项]

A、常被修改的数据

B、绝不容许出现并发的数据,例如财务数据

C、与其他应用共享的数据

D、常用数据

参考答案:

ABC

详解5

Hibernate中dynamic-insert和dynamic-update设置属性默认值

Hibernate允许我们在映射文件里控制insert和update语句的内容.比如在映射文件中

1)元素insert属性:

设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true

2)元素update属性:

设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true

3)元素mutable属性:

设置为false就是把所有的元素的update属性设置为了false,说明这个对象不会被更新,默认true

4)元素dynamic-insert属性:

设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false

5)元素dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false

6)元素dynamic-insert属性:

设置为true,表示把所有的元素的dynamic-insert属性设置为true,默认false

7)元素dynamic-update属性:

设置为true,表示把所有的元素的dynamic-update属性设置为true,默认false

Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把dynamic-update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.

详解10

现实中,很多朋友对两种sessionbean存在误解,认为有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息。

仔细分析并用实践检验后,你会发现,事实恰好相反:

有状态和无状态会话bean的本质区别是它们的生命期。

首先解释一个下面要用到的概念--用户:

sessionbean的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法。

同一个类的不同实例对于sessionbean来说是不同的用户。

有状态会话bean:

每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。

即每个用户最初都会得到一个初始的bean。

无状态会话bean:

bean一旦实例化就被加进会话池中,各个用户都可以共用。

即使用户已经消亡,bean的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。

由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。

但无状态会话bean并

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1