Hibernate复习题1含答案Word文档格式.docx

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

Hibernate复习题1含答案Word文档格式.docx

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

Hibernate复习题1含答案Word文档格式.docx

应为type="

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种状态

7、

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

A、调用session的save方法saveorupdat

B、调用session的create方法

C、调用session的update方法

D、调用session的load方法

8、

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

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

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

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

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

9、

EJB分为()三种类型

A、会话bean、实体bean、Webservice

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

C、Jsp、servlet、jsf

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

10、

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

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

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

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

D、以上说法都不对

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,

"

)应为query.setParameter(1,"

C、第四行没有错误

D、这些语句没有错误

12、

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

A、save

B、update

C、persist

D、create

13、

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

A、Applet

B、客户端

C、Web

D、EJB

14、

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

15、

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

A、定义实体类

B、数据的增删改查操作

C、业务逻辑的描述

D、页面展示和控制转发

16、

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

)值

A、none

B、save

C、delete

D、save-update

17、

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

tx=session.beginTransaction();

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

Long

(1));

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

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

mit();

session.close();

A、运行出错,抛出异常

B、打印false

C、打印true

D、编译出错

18、

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

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

newLong

(1));

customer.setName("

Jack\"

Mike\"

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

A、0

B、1

C、2

D、3

19、

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

Customercustomer=newCustomer();

customer.setName(\"

Tom\"

Sessionsession1=sessionFactory.openSession();

Transactiontx1=session1.beginTransaction();

//line1

session1.save(customer);

//line2

//line3

session1.close();

//line4

A、line1

B、line2

C、line3

D、line4

20、

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

详解20

A、立即检索

B、延迟检索

C、迫切左外连结检索

D、迫切右外连结检索

21、

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

Sessionsession=sessionFactory.openSession();

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

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

A、编译出错

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

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

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

22、

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

A、Annoation

B、hbm.xml

C、struts.xml

D、web.xml

23、

ORM的好处包括()

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

B、具有控制器功能

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

D、向DTO一项能传递数据

24、

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

A、load()

B、loadAll()

C、getAllData()

D、init()

25、

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

 

A、createQuery()

B、query()

C、queryAll()

D、queryObject()

26、

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

A、delete()

B、remove()

C、clear()

D、removeAll()

27、

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

A、SQLQuery

B、Session

C、List

D、Query

28、

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

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

A、<resultset>

B、<result>

C、<mapping>

D、<description>

29、

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

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

A、Restrictions

B、Projections

C、Criteria

D、Criteron

30、

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

A、可以不写数据库方言

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

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

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

31、

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

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

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

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

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

32、

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

publicstaticvoidimain(String[]args){

SessionFactorysf=new

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

Sessionsession=sf.openSession();

Medalmedal=newMedal();

medal.setOwner(“totong”);

medal.setType(“Goldmedal”);

session.save(user);

}

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>

34、

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

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

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

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

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

35、

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

selectu.username,u.userid

fromcom.scce.pojo.Useru

whereuisnotnull

A、语法错误,不能执行

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

C、返回一个数组

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

36、

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

37、

POJO是()

A、PlainOldJavaObject

B、ProgrammingObjectJavaObject

C、PageOldJavaObject

D、PlainObjectJavaOld

38、

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

详解38

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

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

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

D、对象与字段的映射

39、

A、XDoclet

B、EJB

C、Hibernate

D、Spring

40、

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

A、Collection

B、Element

C、Entity

D、NodeList

41、

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

A、Component

C、Attribute

D、ActionForm

42、

HQL不支持聚合函数有()

A、count(*)

B、avg(…)

C、count(…)

D、count(?

43、

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

notfound”的数据库错误

A、many-to-one

B、many-to-many

C、one-to-many

D、one-to-one

44、

45、

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

A、书和作者

B、手机和生产厂家

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

D、士兵和班长

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

选择多项正确的答案)

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

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

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

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

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

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

D、第一级缓存可以设置

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

A、常被修改的数据

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

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

D、常用数据

详解5

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

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

property元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dynamic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性:

1)<

property>

元素insert属性:

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

2)<

元素update属性:

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

3)<

class>

元素mutable属性:

设置为false就是把所有的<

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

4)<

元素dynamic-insert属性:

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

5)<

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

6)<

设置为true,表示把所有的<

元素的dynamic-insert属性设置为true,默认false

7)<

元素dynamic-update属性:

元素的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