练习题附答案_第1页
练习题附答案_第2页
练习题附答案_第3页
练习题附答案_第4页
练习题附答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、名词解释(共5小题 每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关

2、系对应到数据库表与表之间关系的一种模式; 5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类 :POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源

3、代码的情况下给程序动态统一添加功能的一种技术; 9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起 ;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。2、 填空(共10空,每空2分,共20分)1、Spring从容器中获取bean对象可以分别通过(BeanFact

4、ory)接口和(ApplicationContext)接口来实现。2、Struts2、Hibernate缺省的核心配置文件名分别为(struts.xml)和()。3、OGNL上下文有一个bar对象,它不是根对象,bar有getvalue属性,则利用OGNL表达式求bar对象的getvalue属性值为(#bar.value)。4、使用Hibernate的七个步骤是:创建Configuration、创建SessionFactory、(开启一次会话) 、(开启一个事务)、持久化操作、(提交事务)和(释放资源)。5、在Hibernate项目中,如实体类为User,则对应的配置文件名为()。6、Stru

5、ts2的action类定义时传值方式可以采取(字段传值)、(模型传值)7、持久化对象的生命周期中对象的三种状态(瞬时态)(持久态)(脱管态)8、hibernate事务并发处理可以通过加锁的机制实现(悲观锁)(乐观锁);9、Struts2应用拦截器解决重复提交问题时页面中应使用的标签是(<s.token>)、Struts2实现国际化的标签是(<s.text>)。三、问答题(共5小题,每题7分,共35分) 1、Struts2 工作流程是什么?用户发送一个请求后,也就是一个*.action,web.xml中配置的FilterDispatcher(Struts2框架的核心控制器

6、)就会过滤该请求。如果请求是以.action结尾,该请求就会被转入Struts2框架处理,Struts2框架接收到*.action请求后,将根据*.action请求前面的*来决定调用哪个业务。2、开发Hibernate项目步骤是什么?(1)建立项目;(2)创建POJO类及其映射文件;(3)创建Hibernate核心配置文件;(4)编写代码,实现系统的详细功能和业务逻辑接口。3、关联关系映射有哪几种?含义是什么?一对一关联:有两种实现方式:共享主键方式和唯一外键方式,是many-to-one的一种情况,不同的是关联中的外键字段具有唯一性约束;多对一单向关联:一对多双向关联:多对多关联:4、Hib

7、ernate相关接口作用是什么?Configuration:负责管理Hibernate的配置信息;SessionFactory:负责创建Session实例,可以通过Configurtion实例构建SessionFactory;Session:是Hibrenate持久化操作的基础,提供了众多持久化方法,通过这些方法,透明地完成对象的增、删、改、查等操作;Transaction:是Hibernate进行事物操作的接口,是对实际事务实现的一个抽象;事务对象通过Session创建;Query:Hibernate3.x中取代find()方法的接口,用于执行HQl语句,Query和HQL是分不开的。5、S

8、QL与HQL区别?SQL操作的对象是数据表和列等数据对象,HQL操作的对象是类、实例、属性等。6、Spring提供的3种通知(Advice)类型和含义?前通知:指在连接点之前,先执行通知中的代码;后通知:指在连接点执行后,再执行通知中的代码。后增强一般分为连接点正常返回增强及连接点异常返回增强等类型;环绕通知:是一种功能强大的增强,可以自由地改变程序的流程、连接点返回值等。除了可以自由添加横切功能外还需要负责主动调用连接点。7、怎样通过Hibernate实现分页的功能?Hibernate的Query实例提供了两个有用的方法:setFirstResult(int firstResult)和set

9、MaxResult(int maxResult),setFirstResult方法用于指定从哪一个对象开始查询,默认为第一个对象,setMaxResult方法用于指定一次最多查询的对象的数目,默认为所有对象。8、struts2、spring、hibernate整合开发的过程。(1)项目创建;(2)添加项目开发所需要的jar包;(3)实现Hibernate持久层;(4)编写DAO接口及实现类;(5)编写业务逻辑接口及实现类;(6)系统详细功能实现。9、spring中实现注入依赖的方式是什么,比较不同的方式?set注入和构造注入;使用构造注入可以在构建对象的同时一并完成依赖关系的建立,所以,如果建

10、立的对象的关系很多,使用构造注入就会在构造方法上留下很多的参数,使非常不易阅读的,这时建议使用set注入。然而用set注入由于提供了setXx()方法,所以不能保证相关数据在执行时不被更改设定,因此,如果想让一些数据变为只读或私有,使用构造注入会是很好的选择。10、Hibernate Session接口的 get()/load()方法有什么区别?(1)当数据库表中id值为1时,使用get()方法返回null,使用load()方法返回异常;(2)load()查询会先到缓存中去查,如果没有则返回一个代理对象,等到后面使用这个代理对象的时候,才会到数据库中查找相应的信息。若还是没有就抛出异常。get

11、()查询则先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null;(3)load()查询支持延迟加载,而get()查询不支持;总的来说,使用load()方法需要确保数据库中存在相应的值,否则就抛出异常,而get()查询则是试探性的获取,如果没有就返回null。4 程序填空题(共20分)1、完成下列代码的hibernate双向多对一映射,数据库表名与POJO类名相同、POJO类位于com.star.po包下。Person.class 省略了getter/setterRoom.class省略了getter/setterPerson.hbm.xml:<?xml version=

12、"1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" ""><!-Mapping file autogenerated by MyEclipse Persistence Tools-><hibernate-mapping> <class name="" table="person"

13、 catalog="test"> <id name="id" type=""> <column name="id"/> <generator class="native"/> </id> <many-to-one name="room" class="" fetch="select" cascade="all"> <column name=&qu

14、ot;roomId"/> </many-to-one> <property name="personName" type=""> <column name="personName" length="50" not-null="true"/> </property> </class></hibernate-mapping>Room.hbm.xml:<?xml version="1.0"

15、 encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" ""><!-Mapping file autogenerated by MyEclipse Persistence Tools-><hibernate-mapping> <class name="" table="room" catalog="te

16、st"> <id name="id" type=""> <column name="id"/> <generator class="native"/> </id> <property name="roomName" type=""> <column name="roomName" not-null="true"/> </property>

17、 <set name="persons" inverse="false" cascade="all"> <key> <column name="roomId"/> </key> <one-to-many class=""/> </set> </class></hibernate-mapping>2、根据代码完成Action类的配置相关配置<?xml version="1.0"

18、 encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.0/EN" "/dtds/struts-2.0.dtd"><struts><constant name="struts.configuration.xml.reload" value="true"></co

19、nstant><constant name="struts.il8n.encoding" value="UTF-8"></constant><package name="default" extends="struts-default"namespace="/user"><action name="user" class="com.star.action.userAction"><result n

20、ame="success" type="redirect">/welcome.jsp</result><result name="login">/login.jsp</result></action></package></struts>3、实现Spring AOP 前置通知的配置/schema/beans/spring-beans-2.5.xsd"><!-注册前置通知类 -&g

21、t;<bean id="beforeAdvice" class=""/><!- 注册接口实现类 -><bean id="hello" class="erfaces.impl.Hello"></bean><!- 注册代理类 -><bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"><!- 指定应用的接口 -><property name="proxyInterfaces"><value&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论