Hibernate工作原理及为什么要用?
原理:
hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc + sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
什么是Hibernate延迟加载?
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。
Hibernate中类之间的关联关系有几种?(如:一对多、多对多的关系)
many-to-one、one-to-many、many-to-many、 one-to-one
说下Hibernate的缓存机制
一、hibernate一级缓存
(1)hibernate支持两个级别的缓存,默认只支持一级缓存;
(2)每个Session内部自带一个一级缓存;
(3)某个Session被关闭时,其对应的一级缓存自动清除;
二、hibernate二级缓存
(1) 二级缓存独立于session,默认不开启;
Hibernate的查询方式
本地SQL查询、Criteria、Hql
如何优化Hibernate?
1.使用双向一对多关联,不使用单向一对多
2.不用一对一,用多对一取代
3.配置对象缓存,不使用集合缓存
Struts工作机制?为什么要使用Struts?
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
1. JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱。
2. 基于Struts开发的应用:
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序
为什么要用spring?
Spring是一个轻量级的IOC和AOP框架。
IOC(控制反转)意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转
AOP(面向切面),它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问题从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。
1. hibernate中get()与load()区别
请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverable exception)。 如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库。 若你希望在某对象中创建一个指向另一个对象的关联,又不想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操作方式就用得上的了。 如果为相应类映射关系设置了batch-size, 那么使用这种操作方式允许多个对象被一批装载(因为返回的是代理,无需从数据库中抓取所有对象的数据)。 如果你不确定是否有匹配的行存在,应该使用get()方法,它会立刻访问数据库,如果没有对应的行,会返回null。
分享到:
相关推荐
综上所述,"oracle,ssh总结资料"包含的是关于Oracle数据库、SQLServer数据库、Java编程以及JavaScript的基础知识和实践经验。这些技能对于一个Web开发者来说至关重要,能够帮助他们构建高效、稳定且用户友好的Web...
【北大青鸟 ACCP5.0 SSH总结】 SSH(Struts+Spring+Hibernate)是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。本篇将重点总结北大青鸟ACCP5.0课程中关于Struts框架的部分。 ### 1. Struts...
这篇文档将全面总结SSH框架的核心概念、配置及使用方法,并提供相关的案例分析。 首先,Spring框架是企业级应用的基石,它提供了一个全面的编程和配置模型,用于简化Java应用程序的开发。Spring的核心特性包括依赖...
SSH框架,全称为Struts+Spring+Hibernate,是Java企业级开发中常用的一种技术栈,主要应用于构建MVC模式的Web应用程序。SSH框架结合了Struts的视图控制,Spring的依赖注入和事务管理,以及Hibernate的对象关系映射...
总结来说,SSH框架结合了Struts的MVC模式、Spring的依赖注入和全面的后端解决方案,以及Hibernate的对象关系映射能力,为Java Web开发提供了一个强大、结构清晰的框架。这种框架模式有助于提高开发效率,降低维护...
SSH框架错误总结 SSH框架是基于Java的Web应用程序框架,广泛应用于企业级应用开发中。然而,在开发和调试过程中,经常会遇到各种错误和问题。本文总结了SSH框架常见的错误和解决方法,以便开发者快速解决问题,提高...
这篇博客文章“SSH2框架整合总结”可能是关于如何在Java项目中集成和配置SSH2框架的详细指南。 在整合SSH2框架时,有几个关键知识点需要理解: 1. **SSH协议基础**:SSH是一种网络协议,用于加密网络连接,确保...
感觉还不错,所以供大家分享,针对SSH框架做了详细的解释,便于学习
总结来说,SSH框架虽然配置较为复杂,但通过解耦和模块化,能够提升开发效率和软件质量。随着Java生态系统的发展,现在出现了Spring Boot这样的框架,它简化了配置,集成了更多功能,降低了入门难度,成为了很多...
SSH面试总结; 超详细的SSH面试资料; 聚集N多网友SSH面试心得。。。
SSH知识点总结,总结全面的SSH知识点,适合找工作的同学面试的时候问到的问题!
SSH框架是Java开发Web应用程序时常用的三大开源框架的组合,分别是Spring、Struts和Hibernate。它们各自负责不同的职责,共同构建了一个强大的MVC(Model-View-Controller)架构。 Spring框架是SSH的核心,它提供了...
SSH 架构是一种在Java开发领域广泛使用的开源框架组合,由Struts、Spring和Hibernate三个组件构成,主要用于构建企业级的Web应用。Struts提供了控制层的功能,Spring负责业务逻辑和依赖注入,而Hibernate则作为数据...
SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。 Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是...
**SSH工作原理文档总结报告** **一、SSH框架概述** SSH(Spring、Struts、Hibernate)是Java开发中广泛使用的三大开源框架,它们分别负责应用的业务层、表现层和持久层,共同构建了一个强大的MVC(Model-View-...
SSH开发总结主要涉及了三个主流的Java Web开发框架——Structs2、Spring4和Hibernate4的整合应用。这些框架一起构建了一个强大的后端开发环境,能够有效地管理应用程序的业务逻辑、持久化层以及用户界面交互。 1. *...
SSH2 是一个集成框架,由 Struts、Spring 和 Hibernate 三个开源组件组成,常用于构建企业级的Java Web 应用程序。以下是关于 SSH2 开发整合的详细说明: 1. **Struts2**:Struts2 是一个基于 MVC(Model-View-...
**总结** SSH集成是现代IT基础设施中的重要组成部分,它提供了安全的远程访问和自动化操作手段。理解和掌握SSH集成,对于提升工作效率和系统安全性至关重要。无论是开发人员还是系统管理员,都需要熟练运用SSH集成来...
SSH异常总结.doc SSH异常总结.doc SSH异常总结.doc