人人范文网 范文大全

SSH总结面试题

发布时间:2020-03-03 23:31:08 来源:范文大全 收藏本文 下载本文 手机版

张国良编辑

SSH面试题

版本1.0

1.struts1与struts2的区别

1、两者之间目前只有名字是一样的。

2、struts1是通过继承来实现相关机制的。而struts2是通过接口方式来实现的。

3、在struts2中没有了ActionForm使用Action来代替原来struts1中的ActionForm和Action两者的功能。

4、Struts2比Struts1更加容易进行单元测试

5、线程安全

2.hibernate与iBATIS的区别

hibernate和ibatis都是持久层的ORM框架,hibernate是全自动化的,而ibatis是半自动化的。

为什么这样说呢?因为hibernate把我们要用到的增、删、改的SQL语句都封装了,我们不需要再自己手动写,直接调用即可, 所以称它全自动。而对于ibatis,所有的SQL语句都要我们自己来手写,所以称它为半自动化的框架,就等于是一个O/R Mapping 解决方案.有了这框架,只要配置下映射文件,就不需要手写sql语句了.Hibernate是全自动化的,可以说O/R做的相当全面了.

iBateis和Hibernate相比,iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足 够灵活的最简单的解决方案

3、hibernate的优化(项目)

1.使用双向一对多关联,不使用单向一对多

2.灵活使用单向一对多关联

3.不用一对一,用多对一取代

4.配置对象缓存,不使用集合缓存

5.一对多集合使用Bag,多对多集合使用Set

6.继承类使用显式多态

7.表字段要少,表关联不要怕多,有二级缓存撑腰

4、hibernate中seion与seionfactory的联系,分别什么时候用

seionFactory、seion都是由hibernate框架生成的,其中seionFactory包括了数据库配置和映射关系等资源,一个项目中只能生成一个seionFactory实例。因此seionFactory被设计成线程安全的。seion是对对象进行操作并映射至对应的数据库表中的,它由seionFactory生成,不支持多线程并发,因此它是非线程安全的。

5、hibernate中get和load的区别

1、它们都用来根据主键,查找相应的记录

2、load和get方法对缓存的应用不同,其中load和get都可以使用seion层的缓存,但是对于load可以应用二级缓存,而get无法使用

抛异常Null

张国良编辑

注意:criteria也是绑定seion的,即随着seion的产生而产生,随着seion的消亡而消亡。如果想重用criteria对象,必须使用DetechedCriteria对象,实现criteria和seion进行分离。

7、在项目中用hibernateORM框架与传统jdbc比较有什么优点

延迟加载:

延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。

hibernate中lazy的使用

hibernate中lazy的使用 (2008-09-12 13:57:47)

标签:杂谈分类:hibernate

hibernate中lazy的使用

lazy,延迟加载

Lazy的有效期:只有在seion打开的时候才有效;seion关闭后lazy就没效了。

lazy策略可以用在:

* 标签上:可以取值true/false

* 标签上,可以取值true/false,这个特性需要类增强

* /等集合上,可以取值为true/false/extra

* /等标签上,可以取值false/proxy/no-proxy

一、概念:即两者之间存在关联关系,那么在加载主对象的时候,对副对象的加载处理,是延迟或立即,比如说公司(主)-》部门(副).二、分析

1.立即检索

实现方法:将属性的lazy设为false,即不延迟加载.注解是@fetch = FetchType.EAGER.

检索方式:加载主对象的同时加载副对象信息,反之亦然.

优点:即使当前seion关闭,处于游离状态,也能获取到关联对象.

缺点:执行的SQL太多,增加数据库压力,还可能加载一些不需要的对象,即浪费时间,又浪费缓存控件.

优先使用场合:

a.在业务或程序中,需要立即访问关联对象时可以使用.

b.使用二级缓存.

2.延迟检索

实现方法:将属性的lazy设为true,即延迟加载.注解是@fetch = FetchType.LAZY.

检索方式:不立即检索与之关联的对象,但是会为关联对象创建一个代理对象,这个代理对象只初始化一个OID,只有这个代理对象的属性被访问时,才初始化该代理对象.

优点,缺点:与立即检索相反.

优先使用场合:

a.一对多或多对多的关联使用.

b.在程序中不需要立即访问或者该关联的对象不需要访问的时候.

什么时候用延迟加载

例如:银行开户,一个人可以开多个帐户,一个帐户只能属于一个人,所以在用户类里包含一个帐户的集合,帐户类里包含一个用户类型,他们之间是一对多的关系.

如过你在查询的时候,通过用户查询是,如果只想查到用户就用(hibernate)默认的延迟加载,这样效率也高,如果你想把该用户的的所有帐户都一同查出来,那就需要立即加载了,这样一来如果一个用户对应的帐户比较多的话,他的效率是很低的.

设置加载方式一般有两种,一种是通过映射文件(lazy=false),另一种是通过程序的方式来实现的也很简单.

Struts2工作流程:

Struts2:

(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)。

(2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等。

(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器。

(4)请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)。

(5)如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActioProxy,由其进行处理。

(6)ActionProxy通过Configuration Manager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action类。

(7)ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调用之前会根据配置文

java的SSH框架总结

SSH技术方案

面试题总结

(优质)宝剑锋从磨砺出,磨砺Ssh

公务员面试题(总结)

Unity3d面试题总结

社区面试题总结

房地产面试题总结

Android面试题总结

面试题总结(推荐)

SSH总结面试题
《SSH总结面试题.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档