2024年SSH面试题全收录_第1页
2024年SSH面试题全收录_第2页
2024年SSH面试题全收录_第3页
2024年SSH面试题全收录_第4页
2024年SSH面试题全收录_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

SSH面试题汇总

MVC

1.谈谈你mvc的理解

MVC是Model—View—Controler口勺简称。即模型一视图一控制器。MVC是一种设计模式,它强

制性的把应用程序的输入、处理和输出分开。

MVC中的模型、视图、控制器它们分别肩负着不同样的任务。

视图:视图是顾客看到并与之交互的界面。视图向顾客显示有•关的数据,并接受顾客的输入。视图不进

行仟何业务谡辑处理。

模型:模型体现业务数据和业务处理。相称于JavaBean.一种模型能为多种视图提供数据。这提高

了应用程序的重用性

控制器:当顾客单击Web页面中的提交按钮时,控制器接受祈求并调用对应的模型去处理祈求。

然后根据处理的成果调用对应的视图来显示处理的成果。

MVC的处理过程:首先控制器接受顾客的祈求,调用对应的模型来进行业务处理,并返回数据给控制

器。控制器调用对应的视图来显示处理的成果。并通过视图展现给顾客。

Struts

1.struts1.2和struts2.0的区别?怎样控制两种框架中的单例模式?

struts1.2struts2.0gj对比

Action类:A・Struts1规定Action类继承一种抽象基类。Strutsi的一种普遍问题是使用抽象

类编程而不是接口。(侵入式编程,不赞同)A.struts2Action类可以实现一种Action接口,也可实现

其他接口,使可选和定制的服务成为也许。Struts2提供一种ActionSupport基类去实现常用闻妾口。Act

ion接口不是必须性J,任何有exccute标识的POJO对象都可以用作Struts2的Action对象。

线程模式:a・StrutsiAction是单例模式并且必须是线程安全的,由于仅有Action的一种实例来处

理所有的祈求。单例方略限制了StrutsiAction能作日勺事,并且要在开发时尤其小心。Action资源必须是线

程安全的或同步口勺。(安全性不如STRUTS2)▲・Struts2Action对象为每一种祈求产生一种实例,因此

没有线程安全问题。(实际上,servlet容器给每个祈求产生许多可丢弃的对象,并且不会导致性能和垃圾

回收问题)

Serv1et依赖:A・strutslAction依赖于ServletAPI,由于当一种Action被调用时ServletReques

t和ServletResponse被传遂给execute措施。(依赖性太强,耦合度太高)

•Struts2Action不依赖于容器,容许Action脱离容器单独被测试。假如需要,Struts2Action仍然

可以访问初始的request和response。不过,其他的元素减少或者消除了直接访问ServetR

equcst和ServletResponse的必要性。

可测性:

•测试Struts1Action的一种重要问题是execute措施暴露了servIetAPI(这使得测试要依赖

于容器)。一种第三方扩展一StrutsIestCase--提供了一套Struts1的模敌对象(来进行测试)°(对

于TDD方式编程带来不便A・Slruts2Action可以通过初始化、设置属性、调用措施来测试,"依赖注入"

支持也使测试更轻易。

捕捉输入:(使编程人员愈加专注于自己叼业务逻辑)

•Strutsi使用ActionForm对象捕捉输入。所有I向ActionForm必须维承•,种基类。由于其他JavaB

ean不能用作ActionForm,开发者常常创立多出I内类捕捉输入。动态Bean(DynaBeans)可以作为创

立老式ActionForml内选择,不过,开发者也许是在重新描述(创立)已经存在的JavaBean(仍然会导致有冗余

I向javabean)(>

•Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性也许是有

自己(子)属性的rich对象类型。Action属性可以通过web页面上於Jtag1ibs访问。Struts2也支持

ActionForm模式。rich对象类型,包括业务对象,可以用作输入/输出对象。这种ModeIDriven特性简

化了taglib对POJO输入对象的引用。

体现式语言:(使得前端的VIEW变的愈加的灵活多变)A・Strutsl整合了JSTL,因此使用JSTLEL。

这种EL有基本对象图遍历,不过对集合和索引属性的支持很弱。A・StrutS2可以使用JSTL,不过也

支持一种更福大和灵活的J体现式语言一"ObjectGraphNotationLanguage"(OGNL).

绑定值到页面(view):(以便的读取变量的值)

•Struts1使用原则JSP机制把对象绑定到页面中来访问。Struts2使用"ValueStack"技术,使

taglib可以访问值而不需要把你的页面(view)和对象绑定起来,:ValucStack方略容许通过一系列名称

相似但类型不同样的属性重用页面(view)。

类型转换:(再次体现。GNL的强大Struts1ActionForm属性一般都是String类型。Strutsl

使用Common$-Beanutils进行类型转换。每个类一•种转换器,对每一种实例来说是不可配置的。▲・S

truts2使用OGNL进行类型转换。提供基本和常用对象的转换器。

校验:(又是节省编程工作量的好措施)A・Slruts1支持在ActionForm小Jvalidate措施中手动校验,

或者通过CommonsValidator的扩展来校验。同一种类可以有不同样的校验内容,但不能校验子对象。

•Struts2支持通过validate措施和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义

的校验和内容校验,来支持chain校验子属性

Action执行的控制:(Actions的彼此关联在STRUTS2下变I内弱了诸多了8・Strutsl支持每一种模

块有单独H勺RequestProcessors(生命周期),不过模块中的所有Action必须共享相似的生命周期。

A・Struts2支持通过拦截器堆栈(In:erceptorStacks)为每一种Action创立不同样的生命周期。堆

栈可以根据需要和不同样的Action一起使用。

2.项目中为何使用SSH

1.使用Strut$是由于$trut$是基于MVC模式的,很好的将应非用程序进行了分层,使开发者更关注

于业务逻辑的实现:第二,struts有着丰富的tag1ib,如能灵活运用,则能大大提高开发效率。

2.使用Hibernate:由于hibernate为Java应用提供了一种易用的、高效率的对象关系映射框架。

hibernate是个轻量级的持久性框架,功能丰富。

3.使用Spring:由于$pring基于loC(InversionofContr。1,反向控制)和AOP构架多层j2ee

系统的框架,但它不强迫你必须在每一层中必须使用Spring,由于它模块化的很好,容许你根据自己|内需要

选择使用它的某一种模块;采用loC使得可以很轻易的实现bean的装配,提供了简洁的AOP并据此实现事

务管理(TranscationManagment),等等

3.struts与spring是怎样继承的

而Spring中的继承就不清晰了。

4.struts怎样实现国际化

如下以两国语言(中文,英文)为例:

1.在工程中加入StrutS支持

2.编辑ApplicationResource.properties文献,在其中加入要使用国际化的信息,例如:

lable.welcome.china=We1come!!!

3.创立英文资源文献App1icationResource_eperites

4.创立临时中文资源文献ApplicationResource_temp.properites例如dable.weIcom.chi

na=中国欢迎您!

5.对临时中文咨源文献讲行编码转换。可以便用myeclipse的插件,也可以在dos下执行:

native2ascii—encodinggb2312ApplicationResource_pertiesApplicatio

nResource_zh_CN.properties

6.在jsp中加入$truts的Jbean标识库<%@tagliburi="/WEB-INF/$trut$—bean.t1d"prefix

="bean"%>

显示信息:<bean:messagekey="labe1.welcome.china">

可以在struts-config.xml文献中定义多种资源包,而每个资源包可使用key属性指定包口勺名称。

5.struts2.0的常用标签

1.往action里传值:<inputname="userName"type="text"class="input6"size="15">

2.显示标签property用于输出指定值:<s:propertyvalue="userName"/>

3.用于从页面往action中(user)的对象内传值:<s:textname="user.userName"id="use

rname"/>

4.判断<s:if></s:if>用于在页面中判断指定数据<s:lftest="us€rName==admin

</s:if><s:else>—.</s:else>

5.迭代<s:iterator>用于将List、Map、ArrayLi$t等集合进行循环遍历

<s:iteratorvalue="userList"id="user"status="u*'>

<s:propertyvalue="userName''/></a>

</s:iterator>

6.URL地址标签,<s:url>用于生成一种URL地址,可以通过URL标签指定的<s:param>子元素

向URL地址发送祈求参数

<s:ur1action="">

<s:paramname=""value=""></s:param>

</s:ur1>

7.超链接<a卜蜂心一般和<5:51>标签一起使用,用于带多种参数。

<ahref="

<s:ur1action="">

<s:paramname="value=""></s:param>

<s:paramname=""value=""></s:param>

<s:paramname=""value=*'"></s:param>

</s:ur1>

">超链接</a>

8.set标签,用于将某个值放入指定的范围内。例如1application,session等。

<s:setname="user"value="userName"scope="requestw/>

6.struts中怎么配置form—bean、action>tIles

此处配置的是strutsl.2的

form-bean配置:(在配置文献struts-config.xml中):

<form—beans>

#<form-beanname=""type=""x/form—bean>

</form-beans>

name:指定formI内名字;type指定form的类型:包名+类名:

action配置乂在配音文献struts-config.xml中)

oction—mappings>

<actionpath"

•attribute=""

input="M

°name=""

parameter="*'

。scope="request"

°type=""

></action>

</action-mappings>

path:祈求ActionI内名字;attribute:form的名字,与form—bean中的name对应;input:

输入页的途径:

name:假如配置了attribute,name不起作用,与a11ribute同样;parameter:使用分发

Action时,指定调用分发Action中的措施名;

scope:ActionI向范围:type:Action的|类型:包名+类名:

tites酉己置:

1.新建•种tiles-defs.xml文献,并在其中做如下配置:

<?xmlversion="1.0"encoding="UTF—8"?>

<!DOCTYPEtiles—definitionsPUBLIC//ApacheSoftwareF0undation//DTDT

ilesConfiguration1.1//EN""">

<tiles-definitions>

<definitionname="member-definition"path="/Jsp/layoutjsp">

<putname=Mtop"va1ue="/mTop.do"/>

<putname="left",/alue="/mLeft.do"/>

<putname="main"va1ue="/defaultMmain.do"/^

</definition>

</tiles—definitions>

2.在web.xml和$truts-config.x,nl和web.xml中做对应配置:

在struts-config.xml中配置如下:

*♦*♦**♦**♦**

<p1ug-inclassName="org.apache.struts.ti1es.TilesPlugin">

<sct-propertyprooerty="definitions-config"value="/WEB-INF/tilcs-def

s.xml"/>

<set—propertyproperty="definitions—parser-vaIidate"value="true"/>

</p1ug-in>

♦♦*******

在web.xml中配置如下:

*******拿*拿**

<init-param>

<param-name>definitions-config</param-name>

<param-value>/WEB-lNF/tiles—defs.xml</param-value>

</init-param>

*************

3.调用TiIes组件

Tiles组件是通过StrutsAction来调用的,在struts-config.xml中做如下action配置:

*************

<action

path=7member"

parameter="member-definition"

type="org.apache.struts.actions.ForwardAction'/>

*拿***********今

7.10gic标签有哪几种?

此标签库可以分为三种类型:条件、循环、转发/重定向。

1.条件类型(没标注的都比较简朴)

Iogic:empty,logic:notEmpty:

Iogic:equa1,Iogic:notEqual,Iogic:1essThan,logic:greaterThan.Iogic:les

sEqua1Jogic:greaterEqual;

1ogic:present,logic:notPresent;

logic:match,logic:notMatch;比较两字符串与否相等,可以比较字符串的开始的、结尾的或

其中的某个部分。location属性:指定从某个位置开始进行比较。

2.循环类型

Iogicliterate

3.转发/重定向类型

logic:forward和Iogic:redirect

logic:forward标签和jsP:forward标签相似,但它可以使用globalforward中口勺-种Action

Forward

例如:<Iogic:forwardname="login"/>

与上面有关H勺g1obaIforward中的代码:

<global-forward$>

<forwardname='*1ogin"path="/1oginForm.jsp"/>

</global-forwards>

logic:redirect标签和上面/、J标签类似,但它默认调用的措施是response.sendRedirectf)»

取代了上面口勺requestDispatche「.forward。。最大山、J不同样是它支持所有html:1ink标签的

属性,因此你可以指定request参数:

<logic:redirectname="1ogin"paramld="emp1oyeeId"paramName="em

ployee"property="id"/>

在MVC框架下,不推荐使用这两个标签,你应当是从controller中选择下一种view,而不是从

view中选择.在Jsp页面中不要过多的使用Iogic标签。

8.action是单实例还是多实例,为何?

action是单实例的。当多种顾客访问一种祈求日勺时候,服务器内存中只有一种与之对应的acti。

n类对象。

由于当服务器第•次加载struI$的配置文献的时候,创立了〜种Action后,每发送•种祈求,服

务器都会先去检索对应的范围内(request,session)与否存在

这样一种action实例,假如存在,则使用这个实例,假如不存在,则创立一种action实例。

9.dispatehAction是用什么技术实现的?

DispatchAction是AcitonH勺一种子类,重要处理了一种祈求处理多种功能II勺问题

一般『、JAction你只能写execute措施来处理业务,而想用这一种Action处理多种任务,你必须要

祈求参数进行解析,用if语句块来处理

举一种小例子:

有如下一种url:://Iocalhost:8O8O/myApp/addUserAction.do

假如你处理这个url的是一种一般的Action,那么就只能在execute里面执行插入的有关操作,假

如换成一下ur1:

://localhost:8080/myApp/UserAction.do?method=add

你就应当根据method对象的值来执行对应的操作,如再有•种途径://localh0st:8080/myA

pP/UserAction.do?method=delete

这个还可以使用那个Action来处理的,只是多判断一下而已.

假如你用DispatchAction,就简朴多了,因此dispatehAction还是用的Action胶J这样一种技

术。

10.struts2.0的mvc模式?与strutsL0的区别?

$打11152的0丫(:模式:当顾客在页面提交顾客祈求时,该祈求需要提交给struts2的控制器处

理。struts2的控制器根据处理成果,

决定将哪个页面展现给客户端。

与strutsi最大的不同样是:struts2的控制器。struts2的控制器不再像strutsl的控

制器,需要继承一种Action父类,甚至可以无需实现

11.STRUTS的配置文献是什么?

struts-config.xml

12.请写出Struts的工作原理。

13.struts的处理流程。

一、ActionServlet的初始化

ActionServlet作为Struts组件的前端控制器,由于web.xml的对应配置:

<1oad-on-startup>0</load—on-sta应用——力口载时即会被实例化并调用其init措施,ini

t措施所做的重要工作有二:

1.加载$trut$配置文献,并创立月于封装配置信息的ModuleConfig对象%加载资源文献,并创

立用于封装资源文献的MessageResources对象▲需要注意两点:假如web.xml有多模块配置,将创立

多种ModuleConfig对象和MessageResources对象分别

用于封装各个模块的struts配置文献和资源文献。的对各个模块所创立的ModuleConfig对象和Mes

sageResources对象将存储在Serv1etContext中,对应的属

性名中有该模块名称的对应标识。A此外,假如有对应配置的话,init措施还将初始化数据源和P1ugln

二、Actionservletfi^Jprocesa所有形如*.do的祈求(根据web.xml中的有关配置)将提交给Acti

onServlet,最终将调用其process措施

oprocess措施的重要工作有三:

1.根据祈求信息获知所祈求口勺模块名称,从ServictContext中获得与祈求模块对应的的ModulcCo

nfig对

象,并存储到reque$t中。2A.根据模块信息获得对应的RequestProce$sor对象,一种模块对

应,种RequestProcess。r对象,

RequestProcc$sor对象将关联与所属模块对应的ModuleConfig对象。A3.调用RequestPr

ocessor对象的process措施,将request和response作为参数传递给它。

三、RequestProcessor的process

RcquestProccssor对象的procoss措施『、J重要工作有五步:

1.调用自己的processPreprocess(reque$t»response)措施,该措施不进行任何操作,用于

子类重写

扩展其功能。

2.获得与祈求地址所见配的ActionMaDDing对象,AcionMapDing对象用于封装一种恃东acion的

配置信息

03A.根据ActionMapping中的配置信息获得ActionForm对象(该对象将缓存到request或ses

sion中),并

将表单数据填充到ActionForm中,然后根据ActionMapping的配置决定与否验证ActionForm,假

如验证,

将调用ActionForm的validate措施,若其返回的ActionErros对象中包括ActionMcssage对象则

体现验证

失败,将转向action配置信息input属性所指示的J地址。A4.假如ActionForm无需验证或验证通

过将创立并缓存与祈求地址匹配的Action对象,将ActionMapping

对象、ActionForm对象、request和response作为参数调用其execute措施。

5.根据Action对象I向execute拮施返回I内ActionForward对象,将祈求转发或重定向到该Ac

tionForward

所封装的地址。

14.用struts+hibernate做一种增删查改(机试)

15.Struts2.0与StrutsLx有何区别。

特性Struts的一Struts0^12

12Struts的行动,也许实行一项行动时界

面,伴随其他接口,使可选和定制服务。Str

StrutS的一规定采用行动班,以延长一uts时2提供了对应的actionsupport

行动班种抽象的基类。一种共同的问题在Struts一流的执行常用的接口。虽然,这项行动的界

的一,是编程抽象类而不是接口。面是不是必需的o任何波霍对象与执行的签名

可以被用来作为一种Struts的二行动的对

象。

Struts的一行动是独身,必须线程安全的,

2Struts的行动对象是实例对于每个祈求,

由于将只有•种实例一类来处理所有的祈求

因此没有线程安全问题。(在实践中,

采用行动。独身人士方略地方的限制,可

线程模型Servlet的容器,产生许多扔离家出走的对象,

以做些什么与Struts的一行动,并规定加

每次祈求,并多一种对象不施加体现罚款,或影

倍小心发展。行动的资源,必须线程安全的

响垃圾搜集)o

或同步。

Struts的行动,二是不耦合的•种货柜。

最常常的Serviet向背景是派代表作为简朴

Struts的一行动,依赖于该Servlet的

Serv1的地图,让行动,以测试陷入孤立的境地。2S

空气污染指数以来,servIetreque

et的依truts的行动仍然可以使用本来的祈求和响应,

st和servletresponse传递给

赖假如需要。不过,其他建筑元素,减少或消除需

Fxec“te措施,当一种行动是引用。

要访问servetrequest或servletre

sponse直接。

一种重要障碍,以测试StrUtS的一行动是

Execute措施暴露了Servlet的空气污2Struts的行动可以测试实例化的行动,

测试染指数。第三党的扩展,Strutsmte设置属性,引用的措施,依赖注入的支持也使测

stease,提供了一套模拟对象的Struts试更简朴。

1。

Struts『、J一使用actionform对象捕捉StrutS"勺2使用性能的行动作为输入属性,

输入。同样的行动,所有actionforms不再需要第二个输入对象。输入屈性也许是丰

收获的投

必须扩大基地,一流的I。由于其他的JavaB富的对象类型也许有自己的属性。行动性质可

eans不能被用来作为actionform以从网页上通过tag1ibs»Struts的2

s,开发商常常导致多出的班,以捕捉的投还支持actionform模式,以及波霍形式,对

入。dynabeans可以用来作为一种替代象和波霍行动。丰富的对象类型,其中包括商业

发明常规actionfo「m班,但这里太,发展利益或域对象,可以被用来作为输入/输出对象。

商也许会redescribing既有的Jav该modeldriven功能简化tag1b的提述,波

aBeans°霍投入对象。合

Struts时整合与jstl,因此它使用jsStruts的二可以使用jstl,但框架也支

语言体现tl下午。的El已基本对象图遍历,但相对持一种更强大和灵活向语言体现所谓RT对象图

微弱的搜集和索引财产的支持。形符号语言"(ognl)o

Struts『-J2使用''valuestack”技术,使

该taglibs可以访问的价值观没有耦合您的见

有约束力

Struts的一使用原则的JSP机制,有约束解,以对象类型,这是渲染。该va1uestack

的价值观

力的物体进入该网页的背景下访问。方略容许重用的意见覆盖的类型也许有相似的

纳入意见

属性名称,但不同样的属性类型。

Struts的一actionform属性一般是所

有字符串。Struts的一用途的商品一Struts的2使用。gnl为类型转换。该框

类型转换

beanutils为类型转换。转换器每级的,架包括转换为基本和共同的对象类型和原始。

而不是配置的每个实例。

Struts的一支持手册宙定通过验证措施Struts的2支持手册审定通过验证的措施和

对actionform,或通过一种扩展到商品xworkl向险证框架。该xwork的验证框架

验证

校验。班级可以有不同样的验证背景为同一支持链接验证分为分性能的使用验证的定义为

阶层,但不能链,以验证就分对象。性能一流的类型和验证。

Strutsi向一支持独立的祈求处理器(生2Struts的支持,发明不同样的生命周期对

控制行动

命周期)为每个单元,但所有的行动,在该模每行动的基础上通过拦截堆登。自定义栈,才

的执行

块必须共用相似的生命周期。能发明和使用不同样的行动,视需要。

16.Struts/webwork的工作机制,它有哪些标签

Struts2框架的大体处理流程如下:

O浏览器发送祈求,例如祈求/mypage.action/reports/myreportpdf等。

O关键控制器FilterDispateher根据祈求决定调用合适的Action0

WcbWork的拦截器链自动对祈求应用通用功能,例如workflow、validation或文献上传等

功能。

O回调Action的execute措施,该execute措施先获取顾客祈求参数,然后执行某种数据库操

作,既可以是将数据保留到数据库,也可以从数据库中检索信息。实际上,由于Action只是一种控制器,

它会调用业务逻辑组件来处理顾客的祈求。

GAction的execute措施处理成果信息将被输出到浏览器中,可以是HTML页面、图像,也可以

是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FrccMarker等

模板技术。

Hibemate

1.什么是Hibernate的并发机制?怎么去处理并发问题?

Hibernate并发机制:

a、HibernateSession对象是非线程安全I内,对于单个祈求,单个会话,单个的工作单元(即单个

事务,单个线程),它一般只使用一次,

然后就丢弃。

假如一种Session实例容许共享的话,那些支持并发运行H勺,例如request,scssionbeans

将会导致出现资源争用。

假如在Session中有hibernate於JSession的话,就也许会出现同步访问Session0只要

顾客足够快的点击浏览器的“刷新”,

就会导致两个并发运行的线程使用同一种Se$sion。

b、多种事务并发访问同•块资源,也许会引起第•类丢失更新,脏读,幻读,不可反复读,第二类丢失更

新一系列的问题。

处理方案:设置事务隔离级别。

。Serializable:串行化。隔离级别最高

RepeatableRead:可反复读

ReadCommitted:已提交数据读

ReadUncommitted沫提交数据读。隔离级别最差。

设置锁:乐观锁和消极锁。

乐观锁:使用版本号或时间戳来检测更新丢失,在<class〉的映射中设置0Ptimi$tic

—Iock="al1"可以在没有版本或者时间微属性映射的状况下实现版本检杳,此时Hibernate将比较一行记

录的每个字段的状态行级消极锁:Hibernate总是使用数据库的锁定机制,从不在内存中锁定对象!只要为

JDBC连接指定一下隔离级别,然后让数据库去搞定一切就够了。类LockMode定义了Hibemate所需

的不同样的锁定级别:LockMode.UPGRADE,LockMode.UPGRADE_NOWAIT;LockMode.READ;

2.Hibernate和spring中常出现的几种异常

org.springframework.beans.factory.BeanCreationException:

Errorereatingbeanwithname'sessionFactory*definedinServ1etContext

resource[/WEB-INF/appIicationContext.xml]:

Initializationofbeanfailed;nestedexceptionisorg.hibernate.Ma

ppingException:Repeatedcokmninmappingforentity:com.xindeco.myregister.poj

o.MyRegisterlnfoco1umn:

password(shouldbemappedwithinsert='*fa1se"update="fa1se")

出错原因:password和repassword同步对应数据库表中口勺password一列,同步update

和insert都设为true。xml文献如下:

<propertyname="password"

type="java.lang.String"

update="true"

insert="true"

access="property"

column="password"

1ength="32"

/>

<propertyname="repassword"

type="java.1ang.String"

update="false"

insert="false"

access="property"

co1umn="password"

1ength="32"

/>

处理措施:将repasswordII勺insert和update设为false。

org.springframework.beans.facIory.BeanCreationException:

Errorcreatingbeanwithname'sessionFactory'definedinServletContext

resourcc[/WEB-INF/applieationContcxt.xml]:

Initia1izationofbcanfailed;nestedexceptionis□rg.hibernate.Proper

tyNotFoundException:Cou1dnctfindagetterforIDinc1ass

错误原因:hibernate的映射文献中ID是大写的,而p。jo的类中id是小写/、J

处理措施:要么将pojo类中的id改称大写,要么把hibemate的映射文献中山、JID改称小写。

3.Hibernate与jdbc的联络

hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用hibemate.property

配置文献实现当然本质是封装了jdbct向fomame),

和查询,删除等代码,都用面向对象的思想用代码联络起来,hibernate通过hbm配置文献把p。

类的字段和数据库的字段关联起来例如数据库的id,

在po类中就是praviteLongid;publicLonggetld();publicsetld(Longid):

然后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类内,这些实现的魔法就是x

ml文献,其实hibernate=封装的Jjdbc+xml文献

4.Hibernate与spring的联络

hibernate中的某些对象可以给Spring来管理,让Spring容器来创立hibernate中某些对象实

例化。例如:SessionFactory,HibernateTempiate等。

Hibernate本来是对数据库的某些操作,放在DAO层,而Spring给业务层的措施定义了事务,业

务层调用DAO层的措施,很好的将Hibernate的操作也加入到事务中来了。

5.Hibernate自带的分页机制是什么?假如不使用Hibernate自带的分页,则采用什么方式分页?

lxhibernate自带的分页机制:获得Scssion对象后,从Session中获得Query对象。用Qu

ery.setFirstRc设置要显示的第一行数据,

Query.setMaxResu1ts():设置要显示II勺最终一行数据。

2、不使用hibernate自带的分页,可采用sql语句分页,

如:5:为每页显示的记录,2为E前页:seIect*top5fromtablewheretabidnotin

($electtabIdtop(2-1)*5fromtable);

6.hibernate的对象的三种持久化状态,并给出解释?

不清晰hibernate的对象的三种持久

温馨提示

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

评论

0/150

提交评论