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語句兩種表達方式。
相關文章
相關標籤/搜索