Hibernate(开放源代码的对象关系映射框架)

      Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了很是轻量级的对象封装,它将POJO与数据库表创建映射关系,是一个全自动的orm框架,hibernate能够自动生成SQL语句,自动执行,使得Java程序员能够为所欲为的使用对象编程思惟来操纵数据库。 Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。程序员

    核心接口和类spring

      Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心类和接口在任何开发中会用到。经过这些 接口,不只能够对持久化对象进行存取,还可以进行事务控制。下面对这6个核心接口和类分别加以介绍。
    Session
      Session接口负责执行被持久化对象的 CRUD操做(CRUD的任务是完成与数据库的交流,包含了不少常见的SQL语句)。但须要注意的是 Session对象是非 线程安全的。同时,Hibernate的 session不一样于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而之后会将HttpSession对象称为用户session。

    HibernateSessionFactory

      SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责建立Session对象。这里用到了 工厂模式。须要注意的是SessionFactory并非轻量级的,由于通常状况下,一个项目一般只须要一个SessionFactory就够,当须要操做多个数据库时,能够为每一个数据库指定一个SessionFactory。

    HibernateTransaction

      Transaction 接口是一个可选的API,能够选择不使用这个接口,取而代之的是Hibernate 的设计者本身写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA 中的UserTransaction、甚至能够是CORBA 事务。之因此这样设计是能让开发者可以使用一个统一事务的操做界面,使得本身的项目能够在不一样的环境和容器之间方便地移植。

    HibernateQuery

     Query接口让你方便地对数据库及持久对象进行查询,它能够有两种表达方式:HQL语言或本地数据库的SQL语句。Query常常被用来绑定查询参数、限制查询记录数量,并最终执行查询操做。

    HibernateCriteria

    Criteria接口与Query接口很是相似,容许建立并执行面向对象的标准化查询。值得注意的是Criteria接口也是轻量级的,它不能在Session以外使用。

    HibernateConfiguration

    Configuration 类的做用是对Hibernate 进行配置,以及对它进行启动。在Hibernate 的启动过程当中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,而后建立一个SessionFactory对象。虽然Configuration 类在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动hibernate 时所遇到的第一个对象。
 
     

   ssh框架   

      Ssh为 struts+spring+hibernate的一个集成 框架 ,是目前较流行的一种Web应用程序开源框架。
      集成SSH框架的系统从职责上分为四层: 表示层业务逻辑层数据持久层和域模块层,以帮助开发人员在短时间内搭建结构清晰、可复用性好、 维护方便的 Web应用程序。其中使用Struts做为系统的总体基础架构,负责MVC的分离,在Struts框架的 模型部分,控制业务跳转,利用Hibernate框架对 持久层提供支持,Spring作管理,管理struts和hibernate。具体作法是:用 面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,而后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现 Java类与数据库之间的转换和访问,最后由Spring作 管理,管理struts和hibernate
      系统的基本 业务 流程是: 在 表示层中,首先经过JSP页面实现 交互界面,负责接收请求(Request)和传送响应(Response),而后Struts根据 配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协做对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提高系统性能和保证数据的完整性。而在 持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
 
  框架结构

    ssh框架Struts1

     Struts对Model,View和Controller都提供了对应的组件。
     ActionServlet,这个类是Struts1的核心控制器,负责拦截来自用户的请求。
     Action,这个类一般由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。
 
     Model部分:
     由ActionForm和JavaBean 组成,其中ActionForm用于将用户的请求参数封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。
     JavaBean则封装了底层的业务逻辑,包括数据库访问等。
 
    View部分:
    该部分采用JSP(或HTML、PHP……)实现。
    Struts提供了丰富的 标签库,经过标签库能够减小脚本的使用,自定义的标签库能够实现与Model的有效交互,并增长了现实功能。对应上图的JSP部分。
 
    Controller组件:
    Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。
   系统核心控制器,对应上边的ActionServlet。该控制器继承了HttpServlet类,所以能够配置成标注的Servlet。该控制器负责拦截全部的 HTTP请求,而后根据用户请求决定是否要转给业务逻辑控制器。
    业务逻辑控制器,负责处理用户请求,自己不具有处理能力,而是调用Model来完成处理。对应Action部分。

    ssh框架Spring

     Spring是一个开源框架,它由Rod Johnson建立。它是为了解决企业应用开发的复杂性而建立的。Spring使用基本的JavaBean来完成之前只可能由EJB完成的事情。然而,Spring的用途不只限于服务器端的开发。从简单性、 可测试性松耦合的角度而言,任何Java应用均可以从Spring中受益。
     目的:解决企业应用开发的复杂性
     功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
     范围:任何Java应用
     简单来讲,Spring是一个轻量级的 控制反转(IoC)和面向切面(AOP)的容器框架。
     轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架能够在一个大小只有1MB多的JAR文件里发布。而且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring经过一种称做控制反转(IoC)的技术促进了 松耦合。当应用了IoC,一个对象依赖的其它对象会经过被动的方式传递进来,而不是这个对象本身建立或者查找依赖对象。你能够认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了 面向切面编程的丰富支持,容许经过分离应用的业务逻辑与系统级服务(例如审计(auditing)和 事务(transaction)管理)进行 内聚性的开发。 应用对象只实现它们应该作的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
     容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你能够配置你的每一个bean如何被建立——基于一个可配置原型(prototype),你的bean能够建立一个单独的实例或者每次须要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不该该被混同于传统的重量级的EJB容器,它们常常是庞大与笨重的,难以使用。
      框架——Spring能够将简单的组件配置、组合成为复杂的应用。在Spring中, 应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了不少基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
全部Spring的这些特征使你可以编写更干净、更可管理、而且更易于测试的代码。它们也为Spring中的各类模块提供了基础支持。

     ssh框架Hibernate

      Hibernate是一个开放源代码的 对象关系映射框架,它对JDBC进行了很是轻量级的对象封装,使得Java程序员能够为所欲为的使用对象编程思惟来操纵数据库。 Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成 数据持久化的重任。
      Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。经过这些接口,不只能够对持久化对象进行存取,还可以进行 事务控制。下面对这五个核心接口分别加以介绍。
·Session接口:Session接口负责执行被持久化对象的CRUD操做(CRUD的任务是完成与数据库的交流,包含了不少常见的SQL语句。)。但须要注意的是 Session对象是非 线程安全的。同时,Hibernate的session不一样于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而之后会将HttpSession对象称为用户session。
     ·SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责建立Session对象。这里用到了工厂模式。须要注意的是SessionFactory并非轻量级的,由于通常状况下,一个项目一般只须要一个SessionFactory就够,当须要操做多个数据库时,能够为每一个数据库指定一个SessionFactory。
    ·Configuration接口:Configuration接口负责配置并启动Hibernate,建立SessionFactory对象。在Hibernate的启动的过程当中,Configuration类的实例首先定位映射文档位置、读取配置,而后建立SessionFactory对象。
    ·Transaction接口:Transaction接口负责 事务相关的操做。它是可选的,开发人员也能够设计编写本身的底层事务处理代码。
    ·Query和Criteria接口:Query和Criteria接口负责执行各类数据库查询。它可使用HQL语言或SQL语句两种表达方式。
相关文章
相关标签/搜索