Struts2+Hibernate架构技术教程课后参考答案
软件开发框架(J2EE)Hibernate概述习题与答案

一、多选题1.在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素()为它的根元素。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素2.在Hibernate 主配置文件(hibernate.cfg.xml)中,是通过哪个元素()来配置映射文件的。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素3.下面关于Hibernate 的映射文件说法正确的有哪些()。
A.Hibernate 是以xml 格式的文件来指定对象与关系数据之间的映射B.在hibernate.cfg.xml文件中可以配置<mapping>元素的resource属性来指定映射文件C.配置映射文件时,需要遵循它对应的DTD 文件格式D.在映射文件中,<class>元素的<id>子元素只能出现一次E.<id>元素的<generator>子元素用来设定标识符生成器4.在Hibernate 的映射文件中,<id>元素的<generator>子元素用来设定标识符生成器,以下对常用的标识符生成器的用法说法正确的是()。
A.increment:适用于代理主键。
用于为long, short 或者int 类型生成唯一标识B.identity:适用于代理主键。
由底层数据库生成标识符C.sequence:适用于代理主键。
Hibernate 根据底层数据库的序列来生成标识符D.hilo:使用一个高/低位算法高效的生成long、short 或者int 类型的标识符E.seqhilo:使用一个高/低位算法来高效的生成long、short 或者int 类型的标识符,给定一个数据库序列(sequence)的名字5.Hibernate 采用xml 文件来配置对象—关系映射有哪些好处()。
Struts课后选择题答案及详解

Struts课后选择题答案及详解第一章:1、答案:D注意:struts2.0使用的是StrutsPrepareAndExecuteFilter过滤器2、答案:C注意:struts。
Xml不一定放在classes目录下,可以其他目录名字也可以更改,但必须在web.xml中进行明确指定,否则按默认配置Action的时候,包必须配置,否则出错使用<result>来配置转发的视图3、答案:A C注意:struts2中的业务处理Action,每次请求都会创建一个。
Action中的属性一般用于封装请求参数。
但不一定是所有。
4、答案:B注意:必须在strut.xml中进行配置5、答案:B注意:通过ActionContext来获得HttpSession对象第二章:1、答案:D 不多解释2、答案:B 不多解释3、答案:A method属性表示name中的占位符另外一种动态方法的调用4、答案:B注意:abstract不是必须的。
其他正确。
另外注意:namespace一般我们是/ 。
如果加了内容,则提交时也要加内容,如name="mytest" namespace="/user"则提交时需要<form action="/user/mytest" >包必须继承自struts-default,否则报错5、C 不多解释注意:获取对象肯定是通过ServletActionContext.getRequest来得到第三章:1、B 必须实现这个接口,当然也可以继承一个类(上课说过适配器模式)这个类是StrutsTypeConverter,这里问的是接口,所以选B2、AB注意:必须提供资源文件,xwork-conversion.properties配置时的顺序为:目标类型= 转换器3、B D注意:invocation.invoke() 表示放行,继续执行目标Action的方法,当然是可选的了,必须的话那每次都放行了。
Java高级框架应用开发案例教程——Struts 2+Spring+Hibernate课后习题

第三章P74 1-81.什么是MVC模式?模型(Model)视图(View)控制器(controller) 2106162.Struts2的工作原理?1)浏览器发送请求2)核心控制器FilterDispatcher根据请求决定调用合适的Action。
3)WebWork的拦截器链自动对请求应用通用功能,例如验证等功能。
4)回调Action的execute方法。
实际上,因为Action只是一个控制器,它会调用业务逻辑组件(Model)来处理用户的请求。
5)输出结果到页面3.Struts2的核心控制器FilterDispaer如何配置?<filter><!--配置struts2核心Filter的名字--><filter-name>struts</ filter-name><!--配置struts2核心Filter的实现类--><filter-class>org.apache. struts2.dispatcher.Filter Dispatcher </filter-class><init-param><!--配置struts2框架默认加载的Action包结构--><param-name>actionpackages</param-name><param-value> org.apache.struts2.showcase.person</param-value></init-param><!--配置struts2框架的配置提供者类--><init-param>< param- name>configProviders< /param- name><param-value>com.ascent.MyConfigurationProvider</param-value></init-param></filter>4.Struts2的Action类如何开发?对于Struts 2应用而言,Action是应用系统的核心,我们也称Action为业务控制器。
struts2温习题含答案

Struts2温习题1.以下属于struts2的操纵器组件是:2.以下属于struts2的体系结构的是:(多项选择)操纵器组件配置文件3.以下属于struts2配置文件中的配置元素是:(多项选择)A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于struts1和struts2对照的说法正确的选项是:要求Action类继承struts1框架中的Action父类,struts2中那么不必然需要继承,能够是POJO类中的Action不是线程平安的,而struts2中的Action是线程平安的和struts2中都利用ActionForm对象封装用户的请求数据利用OGNL表达式语言来支持页面成效,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的选项是:(多项选择)A.每一个Action对象实例拥有一个ValueStack对象B.每一个Action对象实例拥有多个ValueStack对象中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中会在请求开始时被创建,请求终止时消亡6.关于struts2配置文件说法正确的选项是:A.必需在WEB-INF/classes目录下B.名字必需为C.配置Action时,必需配置包信息D.利用<forward>元素配置转发7.在struts2配置顶用()元素来配置常量:A.<const>B.<constants>C.<constant>D.<constant-mapping>8.关于struts2包的说法正确的选项是:框架利用包来治理常量框架概念包时必需指定name属性框架中配置包时,必需继承自struts-default包,不然会报错框架中利用包来治理Action9.struts2中获取Servlet API的方式正确的选项是:(多项选择)A.利用ActionContext对象以解耦合的方式访问Servlet APIB.利用ServletActionContext对象以解耦合的方式访问Servlet APIC.利用ActionContext对象以耦合的方式访问Servlet APID.利用ServletActionContext对象以耦合的方式访问Servlet API10.struts2动态挪用的格式为:?!11.若是要实现struts2的数据校验功能A.一般Action类能够实现B.继承自Action接口能够实现C.继承自ActionSupport类能够实现D.继承自ActionValidate类能够实现12.若是要实现自概念处置结果,需继承那个类13.实现动态返回结果,在配置<result>元素时利用()指定视图资源A.${属性名}B.@{属性名}C.${'属性名'}D.${"属性名"}14.用于实现国际化的struts2标签是:A.<s:text>B.<s:message>C.<s:textfield>D.<s:resource>15.struts2默许的处置结果类型是:16.自概念转换器继承的抽象类是:17.自概念转换器的注册方式有:A.只有全局注册方式B.只有局部注册方式C.只有全局和局部注册方式D.以上说法都不对18.自概念拦截器类的方式有:(多项选择)A.实现Interceptor接口B.实现AbstractInterceptor接口C.继承Interceptor类D.继承AbstractInterceptor类19.在文件中,利用()元素概念拦截器A.<interceptor-ref>B.<interceptor>C.<intercep>D.<default-interceptor-ref>20.在OGNL中?操作符的作用是:A.掏出符合选择逻辑的第一个元素B.掏出符合选择逻辑的最后一个元素C.掏出符合选择逻辑的所有元素D.以上说法都不对21.以下属于struts2标签的是:(多项选择)标签 B.数据访问标签标签标签22.以下哪个标签是struts2中的用于循环迭代:A.<s:property>B.<s:iterator>C.<s:logic>D.<s:foreach>23.Struts2要紧核心功能是由()实现a)过滤器b)拦截器c)类型转换器d)配置文件24.Struts中的ActionServlet属于MVC模式()a)视图b)模型c)操纵器d)业务层25.Struts2框架由()和()框架进展而来的【选择二项】a)Hibernateb)Strutsc)Springd)WebWork26.Struts2以(B)为核心,采纳()的机制处置用户请求a)Strutsb)WebWorkc)拦截器d)jar包27.struts2中,不属于Action接口中概念的字符串常量的是()a)SUCCESSb)FAILUREc)ERRORd)INPUT28.struts2在操纵器类中一样需要添加相应属性的()和()【选择二项】a)setter方式b)as方式c)getter方式d)is方式29.struts2操纵器需要在()配置文件中进行配置a)b)c)d)30.不属于struts2标签库的是()a)<s:textfield>b)<s:textarea>c)<s:submit>d)<select>31.在JSP页面中能够通过Struts2提供的()标签来输出国际化信息a)<s:input>b)<s:messages>c)<s:submit>d)<s:text>32.资源文件的后缀名为()a)txtb)docc)propertyd)properties33.struts2自概念类型转换器必需实现的接口是()a) Convertb) TypeConverterc) StrutsTypeConverterd) StrutsConvert34.struts2关于注册全局类型转换器的说法正确的选项是()【选择二项】a) 必需提供文件b) 注册文件的格式为:复合类型=对应类型转换器c) 注册文件的格式为:对应类型转换器=复合类型d) 以上说法都不正确35.struts2自概念拦截器中的“return ”代码表示()【选择二项】a) 不执行目标Action的方式,直接返回b) 执行目标Action的方式,直接返回逻辑视图名称c) 在自概念拦截器中,该代码是必需的d) 在自概念拦截器中,该代码是可选的36.struts2中,以下配置文件上传拦截器只许诺上传bmp图片文件的代码,正确的选项是()a) <param name=”allowedTypes”>image/bmp</param>b) <param name=”allowedTypes”>*.bmp</param>c) <param name=”allowedTypes”>bmp</param>d) <param name=”allowedTypes”>image/*.bmp</param>37.以下关于OGNL的说法正确的选项是()【选择二项】a) ActionContext是OGNL的上下文环境b) StackContext是OGNL的上下文环境c) ValueStack是OGNL的根d) ActionContext是OGNL的根38.假设在Session中存在名为uid属性,通过OGNL访问该属性,正确的代码是()a) #uidb) #c) uidd) ${}39.关于“#.{? #>20}”OGNL代码所表示的意义说法正确的选项是()a) 从persons集合中掏出第一个年龄>20的Person对象b) 从persons集合中掏出所有年龄>20的Person对象子集c) 从persons集合中掏出最后一个年龄>20的Person对象d) 该代码不符合OGNL的语法40.假设在某JSP页面中存在”<s:property>”代码,那么以下说法正确的选项是()a) 编译JSP页面时会显现错误b) 编译JSP页面时可不能显现错误,但页面可不能显示任何内容c) 该代码用于输出位于ValueStack(值栈)栈顶的对象d) 以上说法都不正确41.struts2默许的处置结果类型是()a) dispatcherb) redirectc) chaind) 以上说法都不正确42.以下选项中,关于Struts2配置文件说法正确的选项是()a) 必需置于WEB-INF/classes目录下b) 必需为c) 配置Action时必需配置包信息d) 利用<forward>元素配置转发43.以下选项中,关于Struts2的Action说法正确的选项是()【选择二项】a) struts2会为每一个请求创建一个对应的Action实例b) struts2在请求处置进程中,只有一个Action实例c) struts2通过属性来封装用户请求参数d) 在struts2中概念的属性都用于封装用户请求参数44.struts2中动态方式挪用的格式为()a)b) ActionName!c)d) ActionName!问答题:MVC是什么含义?。
软件开发框架(J2EE)Struts 2拦截器习题与答案

1.以下属于struts2的控制器组件是()。
A.ActionB.ActionFormC.ActionServletD.dispatchAction2.以下属于struts2的体系结构的是()。
A.struts2控制器组件B.struts2配置文件C.FilterDispathcerD.Action3.以下属于struts2配置文件中的配置元素是()。
A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于struts1和struts2对比的说法正确的是()。
A.Struts1要求Action类继承Struts1框架中的Action父类,Struts2中则不一定需要继承,可以是POJO类B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的C.struts1和struts2中都使用ActionForm对象封装用户的请求数据D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的是()。
A.每个Action对象实例拥有一个ValueStack对象B.每个Action对象实例拥有多个ValueStack对象C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中D.ValueStack会在请求开始时被创建,请求结束时消亡6.关于struts2配置文件说法正确的是()。
A.必须在WEB-INF/classes目录下B.名字必须为struts.xmlC.配置Action时,必须配置包信息D.使用<forward>元素配置转发7.在struts2配置中用()元素来配置常量。
B.<constants>C.<constant>D.<constant-mapping>8.关于struts2包的说法正确的是()。
Struts2习题

Struts2习题Struts2习题11.struts中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢?标识、可以、如果没写,说明该包为默认空间2.Action 的实现通集成常用那种方法?一种是直接实现自己的Action另一种是实现Action的接口继承ActionSupport3.不属于Struts2的动作类的常量返回值的是(C)A.successB.inputC.neverD.login4.以下不属于Struts2动作执行的结果类型是(A)a.actionb.redirectc.redirectActiond.dispatcher5.在struts.xml中。
假如在一个package中没有配置namespace,那么在其中配置一个Action名字叫做login,它的result是这样配置的/login.jsp,已知在此配置文件中还有另一个name为user的package其中也有一个Action名字为login,它的result是这样配置的/loginUser.jsp那么在以下什么情况下将能访问到login.jsp AA.在根路径后输入/loginB.在根路径后输入/user/loginC.在根路径后输入/login/userD.在根路径后输入/abc/login6.正规开发中,在使用struts2时定义Action使用哪种方式。
BA.直接定义Action类。
B.从ActionSupport继承。
C.从Action继承。
D.实现Action接口。
7.不同的线程在调用Action时创建几个Action实例。
CA.1个B.2个C.每个线程创建1个。
D.可以自定义配置。
8.struts提供了Action接口定义了5个标准字符串常量,不包括的有(C )A SUCCESSB NONEC REGD LOGIN9.列举出action执行结果类型,并说明用途。
(完整word版)J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕)

一、填空:1.Struts 2框架由__webWork______和___xWork_框架发展而来。
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。
其特点是:1、基于一个简单的接口就可以进行灵活且可自定义的配置;2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;3、整个框架通过类型转换和使用OGNL的action属性验证来构建;4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
Xwork和WebWork的关系WebWork2 被构建在XWork之上,以XWork为基础。
通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
xwork和Webwork的交互图2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。
4.Struts 2中的控制器类是一个普通的_POJO_。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___ <taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location></taglib> ________。
SSH开发实战教程(Spring+Struts2+Hibernate)-习题参考答案 (3)

1.一对多关联怎么实现?(1)首先数据库方面,需要在“多方”数据表中增加一个外键,用来指向“一方”的数据表主键(2)实体类方面,假如是一个A类是一方,B类是多方,需要在A类以Set集合的方式引入B 类型的对象,同时在B类中定义A类类型的属性a(3)映射文件方面,”一方”需要使用<set>标签,类似下面的代码:<set name="students"><key column="classno"></key><one-to-many class="com.lifeng.entity.Student"/></set>多方使用<many-to-one>标签,类似如下代码所示:<many-to-one name="classes" class="com.lifeng.entity.Classes"column="classno"></many-to-one>(4)测试类方面,一方与多方互相set对方.实现双向关联2.多对多关联怎么实现?(1)首先数据库方面,新建一个中间表,然后两个“多方”数据表中增加一个外键,用来指向“中间表”(2)实体类方面,假如两个实体类均需要以Set集合的方式引入对方对象(3)映射文件方面,都需要使用<set>标签,类似下面的代码:<!-- 多对对关系映射 --><set name="courses" table="studentcourse"><key column="studentid"></key><many-to-many class="com.lifeng.entity.Course"column="courseid"></many-to-many></set>(4)测试类方面,其中一个Set集合添加另一方的若干个对象3.反转操作的原理?关联关系默认情况下两端都可控制,两端均发出SQL语句,这样就会造成多余或重复的SQL 操作,可能导致重复数据或降低了系统的性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章Struts2框架技术入门1.5 习题1.5.1 选择题1.D2.A3.C4.B5.B1.5.2 填空题1.MVC2.Struts1和WebWork3.IBM4. FilterDispatcher5.JSP、Struts2标签1.5.3 简答题1.简述MVC设计模式的工作流程。
答:MVC设计模式工作流程是:(1)用户的请求(V)提交给控制器(C);(2)控制器接受到用户请求后根据用户的具体需求,调用相应的JavaBean或者EJB(M部分)来进行处理用户的请求;(3)控制器调用M处理完数据后,根据处理结果进行下一步的调转,如跳转到另外一个页面或者其他Servlet。
2.简述Struts2的工作原理。
答:Struts2中使用拦截器来处理用户请求,从而允许用户的业务控制器Action与Servlet分离。
用户请求提交后经过多个拦截器拦截后交给核心控制器FilterDispatcher处理,核心控制器读取配置文件struts.xml,根据配置文件的信息指定某一个业务控制器Action(POJO类)来处理用户数据,业务控制器调用某个业务组件进行处理,在处理的过程中可以调用其他模型组件共同完成数据的处理。
Action处理完后会返回给核心控制器FilterDispatcher一个处理结果,核心控制器根据返回的处理结果读取配置文件struts.xml,根据配置文件中的配置,决定下一步跳转到哪一个页面。
一个客户请求在Struts2框架中处理的过程大概有以下几个步骤:(1)客户提交请求到服务器;(2)请求被提交到一系列的过滤器过滤后最后到FilterDispatcher;FilterDispatcher是核心控制器,是基于Struts2中MVC模式的控制器部分;(3)FilterDispatcher读取配置文件struts.xml,根据配置信息调用某个Action来处理客户请求;(4)Action执行完毕,返回执行结果,根据struts.xml的配置找到对应的返回结果。
1.5.4 实训题略第2章Struts2核心组件详解2.7 习题2.7.1 选择题1.B2.C3.B4.D5.B6.D2.7.2 填空题1. struts.xml和struts.properties2. struts.xml、struts.properties和web.xml3. Action和拦截器4.非耦合性5.IoC方式和非IoC方式6.不指定method属性和指定method属性7.表达式、根对象和上下文环境8.UI标签、非UI标签9.表单标签和非表单标签10.数据标签和控制标签2.7.3 简答题1.简述struts.xml配置文件的作用。
答:Struts2的核心配置文件是struts.xml,struts.xml具有重要的作用,所有用户请求被Struts2核心控制器FilterDispatcher拦截,然后业务控制器代理通过配置管理类查询配置文件struts.xml中由哪个也Action处理。
2.简述Struts2的核心控制器FilterDispatcher的作用。
答:FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。
如果用户请求以action结尾,该请求将被转入Struts2框架处理。
Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务控制器组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。
Struts2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name 属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。
3.简述Struts2的业务控制器Action的作用。
答:Action类中包含了对用户请求的处理逻辑,因此也把Action称为Action业务控制器。
Action是应用的核心,业务控制器是Struts2中实现业务控制的中心,除了保存用户的数据外,它也负责调用其他模型组件在execute()方法中进行数据处理。
2.7.4 实训题略第3章Struts2的高级组件3.6 习题3.6.1 选择题1.A2.A3.B4.C5.C3.6.2 填空题1.properties2.native2ascii3.AOP4.服务器端校验3.6.3 简答题1.什么是国际化,为什么使用国际化?答:“国际化”是指一个应用程序在运行时能够根据客户端请求所来自的国家/地区、语言的不同而显示不同的用户界面。
例如,请求来自于一台中文操作系统的客户端计算机,则应用程序响应界面中的各种标签、错误提示和帮助信息均使用中文文字;如果客户端计算机采用英文操作系统,则应用程序也应能识别并自动以英文界面做出响应。
引入国际化机制的目的在于提供自适应的、更友好的用户界面,而并未改变程序的其他功能/业务逻辑。
人们常用I18N 这个词作为“国际化”的简称,其来源是英文单词Internationalization 的首末字母I 和N 及它们之间的字符数18。
2.简述Struts2中实现国际化流程的过程。
答:(1)不同地区使用操作系统环境不同,如中文操作系统、英文操作系统、韩文操作系统等,在获得客户端地区的语言环境后,struts.xml文件会找国际化资源文件,当时中文语言环境,就加载中文国际化资源文件。
所示国际化需要编写支持多个语言的国际化资源文件,并且配置struts.xml文件。
(2)根据选择的语言加载相应的国际化资源文件,视图通过Struts2标签读取国际化资源文件把数据输出到页面上,完成页面的显示。
3.什么是拦截器,拦截器的作用是什么?答:拦截器(Interceptor)体系是Struts2的一个重要组成部分,正是大量的内置拦截器才提供了Struts2的大部分操作。
当FilterDispatcher拦截到用户请求后,大量的拦截器将会对用户请求进行处理,然后才调用用户自定义的Action类中的方法来处理请求,比如params拦截器将HTTP请求中的参数解析出来,将这些解析出来参数设置为Action的属性;servlet-config拦截器直接将HTTP请求中的HttpServletRequest实例和HttpServletResponse实例传给Action;国际化拦截器i18n将国际化资源进行操作;文件上传拦截器fileUpload将文件信息传给Action。
另外还有数据校验拦截器对数据校验信息进行拦截。
对于Struts2的拦截器体系而言,当需要使用某个拦截器时,只需在配置文件struts.xml中配置就可以使用;如果不需要使用该拦截器,也是只需在struts.xml配置文件中取消配置即可。
Struts2的拦截器可以理解为一种可插拔式的设计思想,所以Struts2框架具有非常好的可扩展性。
4.简述在Java Web应用开发Struts2的输入校验的作用。
答:在互联网上,Web站点是对外提供服务的,由于站点的开放性,Web站点保存的数据主要都是从客户端接受过来。
输入数据的用户来自不同的行业,有着不同的教育背景和生活习惯,从而不能保证输入内容的正确性。
例如,用户操作计算机不熟悉、输入出错、网络问题或者恶意输入等,这些都可能导致数据异常。
如果对数据不加校验,有可能导致系统阻塞或者系统崩溃。
3.6.4 实训题略第5章Hibernate框架技术入门5.5 习题5.5.1 选择题1.A2.B3.A5.5.2 填空题1.JDBC和ORM2.hibernate.cfg.xml和hibernate.properties3.xxx.hbm.xml或者.hbm.xml4. 临时状态(transient)、持久化状态(persistent)和脱管状态(detached)5.5.3 简答题1.简述Hibernate的特点。
答:(1)Hibernate是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲地使用面向对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在JavaEE 框架中取代CMP,完成数据持久化的重任。
(2)Hibernate的目标是成为Java中管理数据持久性问题的一种完整解决方案。
它协调应用与关系数据库的交互,让开发者解放出来专注于手中的业务问题。
(3)Hibernate是一种非强迫性的解决方案。
开发者在写业务逻辑与持久化类时,不会被要求遵循许多Hibernate特定的规则和设计模式。
这样,Hibernate就可以与大多数新的和现有的应用平顺地集成,而不需要对应用的其余部分做破坏性的改动。
2.简述Hibernate的工作原理。
答:首先,Configuration读取Hibernate的配置文件及映射文件中的信息,即加载配置文件和映射文件,并通过Hibernate配置文件生成一个多线程的SessionFactory对象,然后,多线程SessionFactory对象生成一个线程Session 对象,Session对象生成Query 对象或者Transaction对象;可通过Session对象的get(),load(),save(),update(),delete()和saveOrUpdate( )等方法对PO进行加载、保存、更新、删除等操作;在查询的情况下,可通过Session 对象生成一个Query对象,然后利用Query对象执行查询操作;如果没有异常,Transaction对象将提交这些操作结果到数据库中。
5.5.4 实训题略第6章Hibernate核心组件详解6.11 习题6.11.1 选择题1.A2.A3.B6.11.2 填空题1.hibernate.cfg.xml和hibernate.properties2.hbm.xml3.get()和load()6.11.3简答题1.简述Hibernate配置文件的作用。
答:Hibernate框架的配置文件用来为程序配置连接数据库的参数,例如,数据库的驱动程序名,URL,用户名和密码等。
Hibernate的基本配置文件有两种:hibernate.cfg.xml 和hibernate.properties。
前者包含了Hibernate与数据库的基本连接信息,在Hibernate工作的初始阶段,这些信息被先后加载到Configuration和SessionFactory实例;前者还包含了Hibernate的基本映射信息,即系统中每一个类与其对应的数据库表之间的关联信息,在Hibernate工作的初始阶段,这些信息通过hibernate.cfg.xml的mapping节点被加载到Configuration和SessionFactory实例中。