`
zzc1684
  • 浏览: 1224243 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论
阅读更多

Struts2

为什么每次请求都要创建一个Action对象?

truts2每次请求的时候都会创建一个action的实例,这样会保证线程的安全。struts1只是在第一次请求的时候创建一个action的实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性不行。

ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?

在数据输出之前将数据接收的Bean里面的数据清空。解决了数据混淆的可能性。

为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求?

为了 1.可以将数据进行过滤 2.可以进行数据的转码将数据进行统一的编码

请你给我谈谈ValueStack

Struts2是如何实现MVC设计模式的?

Struts2里面是将每次页面的请求进行处理,然后将请求需要输出的数据转发的需要做数据显示的页面,Struts2只是起一个数据接受和转接的功能,就是 Controler控制器,而传来数据的页面叫View显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的链接。

Spring

你为什么要用Spring

使用Spring 1.主要将各个框架进行有效的联系起来,缩短实际编程的时间,起一个润滑剂的作用。 2.可以将各个框架进行有效的管理和控制,让数据传输中安全。

请你聊一聊IOC/DI

依赖注入和控制反转Spring的两大基础作用主要是将所有组件在Spring提供的外部容器中加载,提高安全性,减低耦合性,使各个框架或者类之间的依赖性降低。

什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理?

声明事物管理主要是将在进行对数据库中数据进行添加或者修改的时候需要执行事物管理。主要是避免在执行数据修改和添加的时候数据添加或者修改不完全,导致数据丢失。 Spring是使用AOP面向切面的思想进行事物管理的。

springhibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only

因为添加和删除和更新都涉及到数据库的修改,而查询并为涉及数据修改,所以只需要定义只读,这样可以提高效率,进行更加方便的事物管理。而事物管理主要是为添加和删除和更新设计的


Hibernate

请你谈谈你对OR映射的理解?

将数据库里面的每一张表都映射成一个实体。

很多人说Hibernate不适合大项目,性能有问题,你是如何理解的?

因为Hibernate属于大型框架,里面对许多方法的封装比较多,让SQL控制权降低。这样的话,适用性就会降低,在不必要的操作上会浪费时间。但是只要将Hibernate里的配置进行优化,也能提高其性能。

Hibernate为什么一定要定义一个数据库标识?

可以让映射文件变得简洁,消除无用的噪音(比如TBL_前缀等)。Hibernate使用的默认策略是几乎什么都不做,所以使用标识的作用就是使数据操作更加简洁和方便

为什么Hibernate建议你的实体类实现hashCodeequals方法?

因为Hibernate使用了一级和二级缓存,很多查询为了提高效率Hibernate都会先从缓存中进行查找,然后再从数据库进行查找。而HashCode是唯一的,所以这样避免数据操作出现数据混淆的可能,而equals的作用是对比Hibernate缓存中数据是否一致。

谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?

数据库标识是为了方便和简洁映射文件,而主键是为了使数据不会重复。

谈谈你对Hibernate关联映射与数据库外键之间关系的认识?

Hibernate在进行映射的时候会将数据库的关系也进行映射将数据库中的外键也使用标签的形式进行管理,这样在人为操作的时候就不需要手动的管理数据库关系了。

调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解

不会,具体执行步骤如下: 1. 首先在Session内部缓存中进行查找,如果发现则直接返回。 2. 执行实体类对应的Interceptor.isUnsaved方法(如果有的话),判断对象是否为未保存状态。 3. 根据unsaved-value判断对象是否处于未保存状态。 4. 如果对象未保存(Transient状态),则调用save方法保存对象。 5. 如果对象未已保存(Detached状态),则调用update方法将对象与Session重新关联。 。

调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解

理解同上

请你聊一下以下名词、概念或用法:lazylazy=”extra”inversefetchfetch=”join”fetch=”subselect”batch-size

lazy懒,lazy=“extra”extra属性是不大容易重视的,其实它和true差不多,但有个小的智能的地方是,即调用集合的size/contains等方法的时候,hibernate并不会去加载整个 集合的数据,而是发出一条聪明的SQL语句,以便获得需要的值,只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加载所有对象的数据 inverse控制翻转,主要是为了让谁去维护关系,一般是在主表中配置,将维护关系的只能交给主键。 fetch取来,fetch="join"主要是在查询的时候Hibernate会自动查询有关联的表。fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合,此时lazy会 失效fetch="subselect",另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合 batch-size配置这个属性是让Hibernate在执行批量的数据库操作

 

配置了lazy=”true”一定会实现懒加载吗?

不一定,因为如果再配置中你也使用fetch属性的话此时lazy就会失效

请你谈谈Hibernate中的“N+1”问题

主要是如果再一般的查询时,如果需要查询很多次,就需要像数据库发送很多条SQL语句,而且,会返回很多个结果,而Hibernate中使用N+1策略时执行Criteria时,会将自动 进行SQL构造,并且映射到实体Bean中,就只会返回一个结果,这样不仅提高了性能,而且在处理返回值的时候也变得比较轻松。

请你谈谈Hibernate有哪些最佳实践?

数据库建模,ORMHibernate中比较经典。

 

分享到:
评论

相关推荐

    S2SH jar大全

    "S2SH jar大全"是一个集合了相关jar包的压缩文件,专为解决S2SH框架在项目运行中可能出现的jar冲突问题。S2SH是Struts2、Spring和Hibernate这三个流行开源框架的缩写,它们共同构建了一个强大的企业级Web应用开发...

    S2SH整合 S2SH整合

    S2SH整合指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们分别是MVC(Model-View-Controller)架构中的控制层、业务层和数据持久层的优秀解决方案。在Java Web开发中,S2SH整合能提供一个强大、灵活...

    s2sh整合所需jar包大全

    **S2sh整合所需jar包大全** 在Java Web开发领域,Struts 2、Spring 和 Hibernate(简称S2SH)是一种常见的集成框架,用于构建高效、可维护的企业级应用程序。这个压缩包“s2sh整合所需jar包大全”提供了一整套支持...

    S2SH示例程序S2SHDemo

    1.本例为S2SH示例程序S2SHDemo 2.使用Struts2,Spring4, Hibernate4技术组合 3.包含十余个对象的CRUD 4.是良好的编程风格 5.例程非常完整,包含所有的Jar包

    简单的s2shdemo

    **S2SH框架详解** **一、什么是S2SH框架** S2SH是Struts2、Spring和Hibernate三个开源框架的缩写组合。这个框架集合是Java Web开发中常用的一种技术栈,它提供了完整的MVC(Model-View-Controller)架构支持,用于...

    s2sh框架源码

    【S2SH框架源码详解】 S2SH框架,全称为Struts2+Spring+Hibernate框架,是Java Web开发中的经典组合,它整合了三个强大的开源框架:Struts2负责表现层,Spring处理业务逻辑和依赖注入,Hibernate则用于持久化层。这...

    s2sh整合实例

    **S2SH整合详解** S2SH,全称为Struts2、Spring和Hibernate的整合,是Java Web开发中一种常见的框架组合,用于构建高效、可维护的Web应用程序。这三个框架分别负责不同的职责:Struts2作为MVC(模型-视图-控制器)...

    S2SH详细搭建(适合新手)

    【S2SH框架详解(适合初学者)】 S2SH框架是Java Web开发中的一个经典组合,由Struts 2、Spring和Hibernate三大框架组成,提供了模型-视图-控制器(MVC)架构的支持,实现了业务逻辑、数据访问和用户界面的解耦。本...

    s2sh框架整合类包

    【标题】:“s2sh框架整合类包” 在IT领域,"s2sh"是一个流行的Web应用程序开发框架,由Spring、Struts和Hibernate三个组件整合而成。这个框架因其高效、灵活和可扩展性而被广泛应用。Spring提供了依赖注入和AOP...

    s2sh整合demo源码

    **S2SH框架整合详解** S2SH框架是Web开发中的一个经典组合,由Struts 2、Spring和Hibernate三个组件组成。这个框架整合提供了一个强大的MVC(模型-视图-控制器)架构,用于构建高效、可维护的Java Web应用程序。在...

    s2sh实现增删改查的例子

    在IT行业中,S2SH是Struts2、Spring和Hibernate三个框架的缩写,它们的组合常用于构建Java Web应用程序,特别是那些需要处理数据库交互的项目。Struts2提供了MVC(模型-视图-控制器)架构,Spring则提供依赖注入和...

    s2sh需要的jar包

    S2SH,全称Struts2 + Spring + Hibernate,是一种常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。在这个框架中,Struts2负责MVC(Model-View-Controller)架构的实现,Spring提供依赖注入和...

    s2sh框架实现新闻发布系统

    【标题】:“s2sh框架实现新闻发布系统” 在IT领域,构建一个新闻发布系统是常见的需求,而使用s2sh框架(Struts2 + Spring + Hibernate)则是实现这一目标的常见技术选择。S2SH框架结合了Struts2的MVC(Model-View...

    S2SH所需jar包

    开发者在搭建S2SH环境时,必须确保这些jar包完整且正确导入,以避免运行时出现类找不到或版本不匹配等问题。 在实际开发过程中,`S2SH所需Jar包`通常会包括以下组件: - Spring框架的核心库(如spring-context、...

    S2SH商城系统

    【S2SH商城系统】是一种基于Java技术的电子商务平台,其名称中的"S2SH"是Struts2、Spring和Hibernate三个框架的缩写。这个系统是开发者为了方便学习和实践而设计的,提供了完整的源代码和数据库脚本,对于想要深入...

    S2SH整合demo

    这三者结合,被称为S2SH整合,能够构建出高效、灵活且可维护的Java Web应用程序。 **Struts2框架**: Struts2是Struts1的升级版,它引入了拦截器(Interceptor)的概念,增强了动作(Action)与结果(Result)的...

    s2sh完整jar包

    S2SH是一个基于Java的Web开发框架,全称为Struts2、Spring和Hibernate的组合。这个框架整合了三个流行的开源项目,旨在简化企业级应用的开发流程,提供模型-视图-控制器(MVC)架构的支持。Struts2作为表现层框架,...

    s2sh所需jar包

    标题中的“s2sh所需jar包”指的是在搭建基于Struts2、Spring和Hibernate整合的Web应用程序(通常称为S2SH框架)时所必需的Java类库文件。这些jar包是构建这种三层架构(表现层、业务逻辑层、数据访问层)应用的基础...

    S2SH在线考试系统

    《S2SH在线考试系统详解》 在信息技术领域,开发高效、便捷的在线考试系统已经成为教育信息化的重要组成部分。本文将详细解析一个名为“S2SH在线考试系统”的项目,该系统利用了Struts2.0、Spring2.5和Hibernate3.0...

    s2sh完整项目

    本项目使用extjs+ssh开发出来的一套精美的企业成熟项目,需要开发项目的朋友可以以此项目抽取其框架搭建环境,非常不错

Global site tag (gtag.js) - Google Analytics