struts2_spring_hibernate

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空:
1.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。

2.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。

3.Struts 2中的控制器类是一个普通的_POJO_。

4.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为_____<%@ taglib prefix=”s” uri=”strut-tags”%>______。

5.在Struts 2表单标签库中,表单标签为_____<s:form/>_____。

6.ActionSupport类实现了__action_________接口和___validateable________等接口。

7.通过控制器类中的____validate()_______方法来输出校验错误信息。

8. 在Hibernate XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略名increment 、native 、uuid 。

9. 在Hibernate中级联操作的属性值至少写出三个____none_______ 、_____save-update______、____all_______。

10 Hibernate的会话接口是______Session接口_____,它由接口__SessionFactory接口__创建;Hibernate处理事务的接口是____Transaction接口_______;封装HQL的接口是_____Criteria接口______ 。

21 注入资源的注释是____@Resource ___
二、选择:
1) 在三层结构中,数据访问层承担的责任是(B)〔选一项〕
a) 定义实体类
b) 数据的增删改查操作
c) 业务逻辑的描述
d) 页面展示和控制转发
3) 下面关于Hibernate的说法,错误的是(C)〔选择一项〕
a) Hibernate是一个“对象-关系映射”的实现
b) Hibernate是一种数据持久化技术
c) Hibernate是JDBC的替代技术
d) 使用Hibernate可以简化持久化层的编码
4) Hibernate配置文件中,不包含下面的(AB)〔选择二项〕
a) “对象-关系映射”信息
b) 实体间关联的配置
c) show_sql等参数的配置
d) 数据库连接信息
5) 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B。

〔选择一项〕
a) 配置客户和订单关联的cascade属性为save-update
b) 配置客户和订单关联的cascade属性为all
c) 在客户端使用lazy属性为true
d) 在客户端使用lazy属性为false
6) 执行下面的hql查询,关于返回值的说法,正确的是(B)。

select ername,erid
from er u
where u is not null
a) 语法错误,不能执行
b) 返回一个类型为List的实例
c) 返回一个数组
d) 当返回结果只有一条时,返回一个数组
7) 一般情况下,关系数据模型与对象模型之间有哪些匹配关系(ACD多选)
a) 表对应类
b) 记录对应对象
c) 表的字段对应类的属性
d) 表之间的参考关系对应类之间的依赖关系
8) 以下关于SessionFactory的说法哪些正确?BC
a) 对于每个数据库事务,应该创建一个SessionFactory对象
b) 一个SessionFactory对象对应一个数据库存储源。

c) SessionFactory是重量级的对象,不应该随意创建。

如果系统中只有一个数据库存储源,只需要创建一个。

d) SessionFactory的load()方法用于加载持久化对象
9) <set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade 属性应该取什么值?(D)〔选择一项〕
a) none
b) save
c) delete
d) save-update
10) 以下哪些属于Session的方法?ABD
a) load()
b) save()
c) open()
d) saveOrUpdate()
11) 以下程序的打印结果是什么?C
tx = session.beginTransaction();
Customer c1=(Customer)session.load(Customer.class,new Long(1));
Customer c2=(Customer)session.load(Customer.class,new Long(1));
System.out.println(c1==c2);
mit();
session.close();
a) 运行出错,抛出异常
b) 打印false
c) 打印true
d) 编译出错
12) 以下程序代码对Customer的name属性修改了两次:B
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,
new Long(1));
customer.setName(\"Jack\");
customer.setName(\"Mike\");
mit();
执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)
a) 0
b) 1
c) 2
d) 3
13) 在持久化层,对象分为哪些状态?(ACD多选)
a) 瞬时(Transient)
b) 新建(New)
c) 脱管(Detached)
d) 持久(Persistent)
14) 对于以下程序,Customer对象在第几行变为持久化状态?(B单选)
Customer customer=new Customer();
customer.setName(\"Tom\");
Session session1=sessionFactory.openSession();
Transaction tx1 = session1.beginTransaction(); //line1
session1.save(customer); //line2
mit(); //line3
session1.close(); //line4
a) line1
b) line2
c) line3
d) line4
15) 对于以下程序,Customer对象在第几行变为游离状态?(D单选)
Customer customer=new Customer();
customer.setName(\"Tom\");
Session session1=sessionFactory.openSession();
Transaction tx1 = session1.beginTransaction(); //line1
session1.save(customer); //line2
mit(); //line3
session1.close(); //line4
a) line1
b) line2
c) line3
d) line4
16) 假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(D单选)
Session session=sessionFactory.openSession();
tx = session.beginTransaction();
Customer customer=(Customer)session.get(Customer.class,new Long(1));
mit();
session.close();
Iterator orderIterator=customer.getOrders().iterator();
a) 编译出错
b) 编译通过,正常运行,不显示任何信息
c) 编译通过,正常运行,并显示出结果
d) 编译通过,但运行时抛出异常
17) POJO是A
a) Plain Old Java Object
b) Programming Object Java Object
c) Page Old Java Object
d) Plain Object Java Old
18) POJO的作用是AC
a) 普通的Java对象映射数据库字段
b) 数据访问
c) 对象的赋值
d) 保存客户端对象
19) ORM是A
a) 对象关系映射
b) 对象实体映射
c) 数据传输对象
d) 数据访问对象
20) 常见的三层分别是ABC
a) 应用层
b) 业务逻辑层
c) 数据访问层
d) 通讯层
21) 如果你已知某个实例的持久化标识,你可以使用Session的_____方法来获取它A
a) load()
b) loadAll()
c) getAllData()
d) init()
22) 如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的____方法A
a) createQuery()
b) query()
c) queryAll()
d) queryObject()
23) 使用Session的____会把对象的状态从数据库中移除A
a) delete()
b) remove()
c) clear()
d) removeAll()
24) 对原生SQL查询的控制是通过___接口进行的。

A
a) SQLQuery
b) Session
c) List
d) Query
25) 下面不是Hibernate映射文件中包含的内容。

(AB选两项)
a) 数据库连接信息
b) Hibernate属性参数
c) 主键生成策略?
d) 属性数据类型
26) 下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是E
public static void imain(String[] args){
SessionFactory sf=new Configration().configure().buildSessionFactory();
Session session=sf.openSession();
Medal medal=new Medal();
medal.setOwner(“totong”);
medal.setType(“Gold medal”);
session.save(user);
session.close();
}
a) 配置文件配置有误
b) 没有在配置文件中包含对映射文件的声明
c) 配置文件配置有误
d) 没有对持久化操作捕捉异常
e) 没有事务管理
27) 已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是(AD选两项)
a) from User
b) select * from tbluser
c) select User from User
d) from User u where u.uname=”15”
28.不属于Action接口中定义的字符串常量的是______B_____。

A.SUCCESS B.FAILURE
C.ERROR D.INPUT
29.在控制器类中一般需要添加相应属性的_____A______和___C________。

A.setter方法B.as方法C.getter方法D.is方法
30.控制器需要在___AB________配置文件中进行配置。

A.web.xml B.struts.xml C.struts2.xml D.webwork.xml
31.不属于Struts 2表单标签库的是______D_____。

A.<s: textfield > B.<s: textarea > C.<s: submit > D.<select>
32.资源文件的后缀名为__D_________。

A.txt B.doc C.property D.properties
33.在hibernate的Query查询中,List list = session.createQuery("from
User"),如果没有查到任何数据,以下说法正确的是___C________
A. list是null
B. 抛出SQLException
C. list不是null,但是list.size=0;
D. 抛出NotFoundException异常
34.hibernate中获取对象的方法load(),在获取不到对象的时候,以下说法
哪种是正确的______A_______
A. 抛出ObjectNotFoundException
B. 返回null
C. 抛出ClassNotFoundException
D. 返回""
35.Struts中数据验证失败时,通过______D_____标签显示错误信息
A. <s:text>
B. <input type="text"/>
C. <s:error>
D. <s:fielderror>
36.一下代码中type类型为什么值时,表示确保某给定字段的值既不是空值
null, 也不是空白""
<field-validator type="_____A___________">
<param name="trim">true</param>
<message><![CDATA[用户名不能为空^^^^^^]]></message>
</field-validator>
A requiredstring
B trim
C reqiored
D stringlength
简答题
1.请说出Hibernate中持久化对象的生命周期以及各种状态直接的区别,并描述相互之间是如何转换的。

Hibernate中持久化对象的生命周期有临时态、持久态和游离态三种。

处于临时态的对象主键值为空,并且未与session关联,数据未保存到数据库中
处于持久态的对象与session关联起来,持久化后对象中的数据被保存到数据库中,并且主键值按照.hbm.xml文件中配置的生成方式生成相应的值
处于游离态的对象脱离了session的管理,是持久化后的一种状态,主键值按照.hbm.xml 文件中配置的生成方式生成相应的值
当new一个新的对象时,该对象处于临时态
当该对象被当作session的参数使用的时候,该对象处于持久态
事务提交,session关闭后,该对象处于游离态
2、Hibernate 有哪5 个核心接口?它们的作用分别是什么?
答:Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象;
SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;
Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;
Transaction 接口:管理事务;
Query 和Criteria 接口:执行数据库的查询。

3、什么是ORM?
答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。

相关文档
最新文档