软件框架整合开发技术复习题 联系客服

发布时间 : 星期五 文章软件框架整合开发技术复习题更新完毕开始阅读65a9c76987c24028915fc37a

a) 自由状态(Transient):实体在内存中自由存在,与数据库中的记录无关

b) 持久状态(Persistent):实体处于由Hibernate框架所管理的状态,对应了数据库中的一条记录,同时与某个session实例发生了关联

游离状态(Detached):处于持久状态的对象,其对应的session关闭之后 d) 不能将对象从游离状态转换成持久态

48.在hibernate的分页中,假设页大小为5,那么取第2页的操作如下:

List list=session.createQuery(hql) .list();

在下划线上填入(c)。

a) .setFirstResult(2 * (5 - 1)) .setMaxResults(2) b) .setFirstResult(5 * (2 - 1)) .setMaxResults(2) c) .setFirstResult(5 * (2 - 1)) .setMaxResults(5) d) .setFirstResult(2 * (5 - 1)) .setMaxResults(5)

49.在 hibernate中, Customer.java映射客户表(customer) Orders.java 映射定单表(orders) 有如下HQL语句,查询出所有的客户信息,包含没有定单的客户信息: String hql=\Query q=session.createQuery(hql); List list=q.list(); 下面说法正确的是(b)。

a) list集合中的每个对象都是Customer类型 b)list集合中的每个对象都是Object[]类型 c) list集合中的每个对象都是Orders类型 d) list集合中的每个对象都是Object类型

二、填空题

1.Struts 2框架由__WebWork_________和____XWork_______框架发展而来。 2.Struts 2以__过滤器_________为核心,采用____拦截器_______的机制来处理用户的请求。 3.构建Struts 2应用的最基础的几个类库是_____struts2-core____、____xwork___、__freemaker___、ognl___以及___commons-logging_____。 4.Struts 2中的控制器类是一个普通的____POJO_______。 5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___<%@ uri=”/struts-tags” prefix=”s”%>______。

6.在Struts 2表单标签库中,表单标签为__________。 7.ActionSupport类实现了__Action__接口和ValidationAware等接口。 8.通过控制器类中的___validate___方法来输出校验错误信息。

9. Struts 2以___FilterDispatcher_____为核心控制器,它的初始化方法为__init(FilterCongif filterConfig)_____。

10.Hibernate配置数据库连接的四种属性名是 connection.driver_class 、connection.username 、 connection.password 、connection.url 。

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

12.基于Hibernate用标注(annotations)描述映射关系,映射实体类中表示主键

的属性的标注是___@Id_____ ;映射实体类中普通属性的标注是___@Column_;实体属性对应的列用标注__@Entity___。

13.Hibernate的会话接口中声明了持久化的操作,删除一个实体的方法是__delete(obj)__,合并一个实体的方法是___merge____,获得事务处理接口的方法是_getTransaction()_。

14. Hibernate的会话接口同时又是一个工厂类型:创建一个HQL查询接口的方法是_createQuery_,创建基于公式(标准)接口的方法是 _createCriteria__。 15. 对象关系映射(ORM)的基本原则是:类型(class)映射__表__,属性(property)映射_列_, 类型的实例或对象(instance | object)映射一条记录_。

16. Hibernate应用缺省的XML格式的配置文件名是hibernate.cfg.xml_, 放置在__classpath_下;配置数据库方言的属性名是__dialect_。

17. 在Hibernate中级联操作的属性值至少写出三个_save-update 、_none__、_delete__。

18 基于Hibernate用标注(annotations)描述映射关系,实体类型用标注__@Entity__ ;体对应的表用标注___@Table____。

19 Hibernate的会话接口是_Session__,它由接口_SessionFactory__创建; 20.Hibernate处理事务的接口是Transaction_;封装HQL的接口是_Query_ 。 21.现阶段在JAVA WEB开发中的开源框架很多,其中主流的当属SSH,即Struts,Spring和 Hibernate 。

22.Hibernate实体间通过关系来相互关联,关联关系主要有一对一关系、一对多关系和 多对多 关系3种关系。

23.目前流行的数据库连接池有JNDI、C3P0和__JDBP__等。 24.Spring容器的两大基本概念是IOC和 AOP 。 25.ORM中的“O”代表对象(Object),“R”代表关系(Relation),“M”代表映(Mapping)。ORM的原理是将对象与表、 属性 与 字段 分别建立映射关系。 26.版本控制是一种软件工程技巧,在开发的过程中确保由不同人所编写的同一文件都得到更新。目前流行的版本控制软件有SVN和__CVS____等。

28.Struts2的Action类中有多个方法时,使用标签的 method 属性来指定需要调用的方法.

29.在实际应用中为了提高struts.xml文件的可读性,可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件,该标记是 include 。

30.如果将${}用在配置文件struts.xml中表示从 值栈 中读取数据。

31.假设在工程的SRC目录下存在两个资源文件:第一个用来存放中文编码,文件名为:ssh2014_zh_CN.properties,第二个存放英语(作为默认语言)编码,文件名为:ssh2014_en_US.properties。当使用上面的资源文件时需在struts.xml中配置常量加载全局资源文件:

32.实体对象的生命周期有3种状态即:瞬时态、 游离态 和脱管态。

33.Hibernate实体间通过关系来相互关联。其关联关系主要有一对一关系、一对多 关系和 多对多 关系3种。

34.Spring是一个以 IOC 和 AOP 为核心的轻量级容器框架。

35.若从Kcb中查询kch为\的详细信息,则执行的命令如下所示,请补充完整(前后代码略去)。

Query query=session.createQuery(\query.setParameter( 0 , \

36.在spring中为List类型的对象注入数据时应当采用如下格式: value1 value2 < /list >

37.在Struts2中如果某个动作使用了自定义拦截器,则必须使用 默认 拦截器,否者Sturts2的流程不能正确执行下去。

38.版本控制是一种软件工程技巧,确保由不同人所编辑的同一档案都得到更新。目前流行的版本控制软件有CVS、_SVN_____等。

39.目前流行的数据库连接池有__C3P0___、__DBCP___和JDNI等。

三、简答题

1、简述Struts的工作流程。 答:(1)客户端初始化一个指向Web容器的请求。

(2)请求经过一系列过滤器(Filter)的过滤并传递给FilterDispatcher。 (3)FilterDispatcher接收到请求信息后,会根据URL在ActionMapper中搜索指定Action的映射信息。

(4)如果找到符合的映射信息,ActionProxy通过Configuration Manager在配置文件struts.xml中搜索被请求的Action类。

(5)ActionProxy创建一个被请求Action的实例,该实例用来处理请求信息。 (6)如果在配置文件struts.xml中存在与请求Action相关的拦截器配置,那么该Action的实例被调用的前后,这些拦截器也会先被执行。

(7)Action对请求处理完毕后返回一个逻辑视图,此逻辑视图寻找对应的物理视图,并返回给客户端。 2、简述struts的工作原理。 答:struts的工作原理如下:

第一,客户端向服务器发出一个纸箱servlet容器的请求。 第二,该请求经过过滤器处理后将信息传递给action。

第三,找到相应的action后将其交给actionproxy并创建一个actioninvocation的实例。

第四,执行相应的action并返回结果。

3、关系数据库的表之间不存在继承关系,为了将面向对象中的继承关系映射关系数据库中,可以使用以下三种继承映射策略:每个继承层次一张表;每个具体类一张表;每个类一张表。试请分析三种策略在实际应用中各自的优缺点? 答:三种方式各有优缺点:

第一,每个类层次一张表优点是操作简单,执行效率高;但是表中存在额外的字段,不允许对应的字类成员作not null约束。(2分)

第二,每个具体类一张表优点是实现简单,可以为每个表的字段添加not null约束;但是每个表中都包含相同的多余字段,太多的冗余。(1分)

第三,每个类一张表优点是实现简单,可以为每个表的字段添加not null约束;

但是该数据表的结构不符合关系模型的设计规则,存在太多的冗余。(1分) 4、Hibernate是一种ORM框架,请问它的工作流程是什么? 答:Hibernate工作过程按照以下步骤进行:

(1)读取并解析配置文件:这是使用Hibernate框架的入口,由Configure类来创建。

(2)读取并解析映射信息:调用Configure中的buildSessionFactory()方法来实现,同时创建SessionFactory。(3)开启Session:调用SessionFactory的openSession()方法实现。

(4)创建事务管理对象Transaction:调用Session对象的beginTransaction()来实现。

(5)数据交互操作:调用Session对象的各种操纵数据库的方法来处理数据,如增加、删除、修改和查询等操作。(6)提交事务:完成了对数据库的操作后应该提交事务,完成一次事务处理。

(7)关闭Session:结束了对数据库的访问以后,应该立即关闭Session对象,释放其占用的内存。(8)关闭SessionFactory:完成了全部的数据库操作后关闭SessionFactory对象。

6、为了解决事务并发过程中出现的问题,数据库系统提出了一种特殊的处理方式——锁。锁有两种形式:悲观锁和乐观锁。请简述乐观锁的版本控制机制实现的具体步骤。 答:(1)首先在数据表中增加一个版本字段,如增加int类型的version字段。 (2)然后在该表对应的持久化类中增加int类型的version属性,并提供相应的get和set方法。

(3)在映射文件中配置该字段和属性的映射,配置的版本字段和属性值间的映射必须填写在字段下面。

8、Hibernate 有哪5 个核心接口?它们的作用分别是什么?

答:Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象; SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可被应用的多个线程共享,是重量级、二级缓存; Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻级、一级缓存; Transaction 接口:管理事务; Query 和Criteria 接口:执行数据库的查询。 9、什么是ORM?

答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。 10、解释数据持久化的好处? 答:数据库的读写是一个很耗费时间和资源的操作,当大量用户同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。

11、谈谈您对OOP和AOP两种编程思想的认识。 答:Oop与aop两则之间既有区别也有联系