1.Struts,Hibernate,Spring综合在一起时什么状态?Struts,hibernate,Spring综合在一起基本上会这么来用(用一个图来描述):
执行步骤:
- Client端它发起一个request(请求)给我的app server(服务端)
- 这个app server会将我们的请求发给Struts(调用doFilter进行分发)
- 找到对应的action,会执行Action对应的方法,比如execute
- Action会调用service层进行业务逻辑上的处理。
- 在进行业务逻辑处理的时候,会调用DAO层,在DAO层会访问我们的实体类model,然后DAO会帮我们把实体类进行persistence到数据库
- –-返回
- DAO会将结果返回到Serivce
- Service会将结果返回给Action
- Action会把结果返回给Struts的Filter
- Struts的Filter会通过配置文件找到对应的JSP
- 视图(jsp)通过app server反馈给我们的客户端。
Spring去哪了呢?spring会贯穿在整个过程里面。Spring会帮action把service注入到action里面去,Spring会帮service把DAO注入到里面Servcie里面去,Spring还会针对service进行声明式的事物管理,这就是Spring的作用。
2.用了hibernate的结果就是当你拿到Session对象之后,以后的操作就非常简单,直接save(Student s),它内部执行了什么SQL语句跟我们没关系,全有Hibernate帮我们做了,”save(Student s)“这种写法是面向对象的,所以我们把面向对象的写法覆盖在了原来的面向关系数据库上,我们就不用再写面向关系的SQL语句了,我们只用面向对象的写法来操作数据库。
我们现在有一个Client端,然后Client new一个对象Student,new完这个对象之后,我想把它存到数据库里面,那么怎么做呢?采用Hibernate 它的写法是这样的,根本不用牵扯JDBC了,它创建好这个student之后,它(Client)想把这个student存到数据库,它就会跟hibernate打交道:①读取Hibernate.xml生成Configuration,②调用Configuration的buildSessionFactory方法创建一个SessionFactory对象,③Client端调用SessionFactory的OpenSession()方法创建一个Session对象。
3.Hibernate这个框架的原理:其实就是将我们的Object映射与relationship数据库相关的SQL语句,以及将与数据库相关的SQL语句组装成对象。
4.Hibernate自带的slf4j-api-1.5.8.jar只是定义了slf的接口,并没有slf的实现,所以还要自己下载slf4j,解压包里面的:slf4j-nop-1.5.8.jar
5.什么是O/R Mapping?
就是一大推的类库,我们调用它的时候,用面向对象的方式来调用,hibernate帮我们翻译成面向关系的方法
6.常见的O/R Mapping框架
hibernate, toplink,JDO
7.Hibernate3.0以后开始支持Annotataion.
8.想要输入@符号eclipse就自动提示:选择Preference --> java/editor/context Assist --> 修改Auto Activation triggers for java
9.理解JPA
JPA下面统领着一些具体的框架,这些具体的框架全部都实现了JPA规范;JPA就是一个标准,规范,下面的框架全部实现了这一标准(这个很像JDBC)
9.1(扩展)理解JDBC
JDBC只是规范,Oracle的驱动包(ojdbc.jar),SQL Server的驱动包,MySQL的驱动包都是其具体实现
9.2(扩展)理解SLF
Hibernate目前用到的一个日志框架SLF,SLF是一个规范(和JPA,JDBC类似)
①slf是一个日志框架,具体的日志实现你可以用各种各样的实现,你可以用slf自己的日志实现slf4j nodep,你也可以用log4j的日志实现,还可以用jdk logging API,还可以用apache commons-logging,而Hibernate3.3.2用的是slf4j
②当然我们可以在我们自己的项目里配slf自己的实现slf4j,但是很少用(不流行),所以我们可以把slf4j的接口对上log4j自己的实现,这是完全可以的。
slf4j-api-1.5.8.jar是slf的接口 对应是我们的接口slf
slf4j-nop-1.5.8.jar 对应就是slf的实现
如何把实现换成log4j的?
下面我们想把实现换成log4j的,不想用slf的(因为slf不是特别流行),我们现在实现换成log4j的。
将项目中的slf的实现(即slf4j-nop-1.5.8.jar)换成log4j-1.2.15.jar(log4j的实现);但是slf4j-api不能自动的和log4j对应起来,它们中间需要转换器,把slf的接口转换成log4j的接口,那么我们就需要到slf4j的包中引入这个转换器slf4j-log4j12-1.5.8.jar(这个jar是用于在slf4j和log4j中间做转换的jar包);从slf4j的包中还可以看出,可以将slf接口转换成与commons-logging对应的接口,即slf4j-jcl-1.5.8.sources.jar,但是这样还不行,还需要一个log4j的配置文件。
①show_sql 是hibernate.cfg.xml配置文件的配置,ddl日志跟hibernate.cfg.xml的配置文件没关系,是hibernate的类执行过程当中能够显示的信息。DDL语句在hibernate.cfg.xml中是配置不出来的,只能用日志输出。
show_sql配置是说是否需要打印日志而已。
10.Hibernate如果你想使用Annoation的话,可以参考文档
①Hibernate 自带的Hibernate-distribution-3.3.2.GA\documentation\manual
②Hibernate -annotation 自带的doc\references\zh_ch\html_single\index.html
③纯中文的Annotation帮助文档Hibernate-3.2.0_Reference_zh_cn.chm (网上下载)
相关推荐
### Hibernate运行原理简介 Hibernate是一个开放源代码的对象关系映射框架(Object-Relational Mapping, ORM)。它提供了一种将Java对象映射到关系数据库表中的机制,并且支持多种数据库系统。下面是Hibernate的...
对于初学者来说,这三者结合的学习路径通常是:首先理解Spring的基础概念,掌握依赖注入和AOP的原理;然后进入Spring MVC的学习,了解MVC模式和Spring MVC的组件工作方式,以及如何编写Controller、Service、DAO等层...
### Hibernate原理深度解析 #### Hibernate为何重要? Hibernate作为一款开源的对象关系映射(ORM)框架,在Java开发领域占据着举足轻重的地位。其重要性体现在以下几个方面: 1. **资源管理**:Hibernate通过...
### Hibernate工作原理详解 #### 一、概述 Hibernate 是一款开放源代码的 ORM(Object Relational Mapping)框架,它能够将 Java 类与数据库表建立映射关系,从而简化了持久层的操作。通过 Hibernate,开发人员...
【hibernate+mysql基本原理示例】 在Java Web开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式来处理数据库交互。MySQL则是一款广泛使用的开源关系型...
【Hibernate工作原理】 Hibernate是一个ORM(Object-Relational Mapping)框架,它将Java对象与关系数据库的数据进行映射,实现了对象与数据库之间的一套映射规则。其主要工作流程包括: 1. 加载并解析配置文件和...
6. **测试和运行**: 最后,编写测试用例验证Spring和Hibernate的集成是否成功。运行应用,确保数据的持久化和检索功能正常工作。 在实际开发中,为了提高代码的可读性和可维护性,我们可以采用基于注解的配置和实体...
标题:Hibernate反射原理 描述:本文章旨在深入探讨Java与Hibernate框架结合时所涉及的反射原理,通过解析Java反射机制的基础知识,理解Hibernate如何利用反射技术实现对象关系映射(ORM)。 ### Java反射原理概览...
在"Hibernate 原理与应用 ppt"中,主要讲解了Hibernate的基本概念、安装配置、CURD操作、关联映射、继承映射、懒加载、HQL和Criteria查询、缓存管理、事务处理以及最佳实践和与JPA的集成。 **安装配置** 在开始使用...
要运行或修改Hibernate Tools的源码,首先需要确保你拥有所有必要的依赖库,这些依赖通常以jar文件的形式存在。以下是一些关键的知识点: 1. **Hibernate ORM框架**:Hibernate是一个开源的对象关系映射(ORM)框架...
Hibernate使用配置好的映射文件和主配置文件,在运行时自动将数据对象转换成数据库中的记录,并且可以将数据库记录转换回数据对象。Hibernate的懒加载、缓存策略以及事务管理等高级特性,使得它能高效地与关系型...
3. **Hibernate运行时体系结构** Hibernate有两种运行模式:轻型体系和全面解决体系。轻型体系需要开发者自己管理JDBC连接和事务,而全面解决体系则由Hibernate管理所有底层细节,包括连接、事务等。 4. **...
【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...
通过对XML文件、Properties文件以及Java类文件的解析,Hibernate能够在运行时建立起Java对象与数据库表之间的映射关系。此外,Hibernate还提供了丰富的特性,如事务管理、查询语言支持等,极大地提升了开发效率和...
学习如何正确配置这些参数对于项目的稳定运行至关重要。 3. **实体类和注解**: Hibernate 使用Java类来代表数据库中的表,通过注解如@Entity、@Table、@Id等来定义实体类与数据库表的关系。了解并熟练运用这些...
通过这种方式,开发者可以在不依赖特定IDE的情况下,利用Hibernate Tool进行数据库交互,提高开发效率,同时也能更好地理解和掌握Hibernate的工作原理。这种方法对于自动化脚本、持续集成或者在没有安装Eclipse的...
在这个过程中,我们将深入探讨Hibernate的核心概念、工作原理以及如何在实际项目中有效地运用Hibernate AIP。 首先,让我们理解Hibernate的基础知识。Hibernate是一种开源的ORM框架,它通过映射Java类到数据库表,...
### Hibernate原理与配置快速入门 #### Hibernate核心API与基本配置概览 Hibernate 是一款流行的 Java 持久层框架,其主要功能是提供对象关系映射(Object Relational Mapping,简称 ORM)的能力,使得开发人员...
这将帮助你理解Hibernate的工作原理,例如怎样执行HQL(Hibernate查询语言)或SQL查询,以及事务管理和缓存机制。 通过深入学习和实践这个入门案例,你将能够熟练掌握Hibernate的基本操作,为进一步学习更复杂的...
4. **自带jar包**:压缩包中包含的jar文件是Hibernate运行所必需的库,包括Hibernate核心库、JDBC驱动以及其他的依赖库。这些库提供了对Hibernate API的访问,以及与数据库交互的能力。 5. **文件结构**:尽管没有...