maven構建hibernate項目及其詳解

一、WEB的三層結構

1.1 JavaEE 三層結構

         Web層:struts 框架

         Service層:spring 框架

         Dao層:hibernate 框架,對數據庫進行 crud 操作

1.2 MVC思想

      M:模型

      V:視圖

      C:控制器


二、Hibernate概述

2.1 框架

         原先框架是建築學上的一個概念,而在程序上,是爲了減少一部分代碼來實現相同的功能而提出來的構想。

2.2 Hibernate

         是屬於javaEE中的dao 層框架, 具有簡單易學、靈活性強、拓展性強等特點,能夠大大簡化程序的代碼量,提供工作效率。

         他是一個開放源代碼的ORM(對象關係映射)框架,對JDBC進行了輕量級的對象封裝,使得Java開發人員可以使用面向對象的思想來操作數據庫。不需要寫複雜的JDBC代碼,不需要寫SQL語句來實現。

2.2.1 hibernate版本:

            1)3.X版本:原來版本

            2)4.X版本:過渡版本

            3)5.X版本:現在大量使用的版本

                

2.3 ORM思想

        全稱是Object Relational Mapping:對象關係映射。

2.3.1文字描述:

        在實體類與表進行對應,讓實體類中的屬性與字段進行對應,不需要直接操作數據表,而只需要操作對對應的實體類的對象就能夠達到操作數據表的目的

2.3.2 圖解描述

               

      我們將使用配置文件的方式來構建如上的對應關係


三、HIbernate入門

3.1 開發環境搭建

   安裝和當前Eclipse版本匹配的Hibernate插件或者JBoss插件:
    在Eclipse中點擊Help —> Eclipse Marketplace,搜索JBoss Tools,點擊install,選擇要安裝的JBoss插件,一路默認即可,安裝完後重啓Eclipse。
  重啓Eclipse後,右鍵New -> Other,輸入hibernate提示如下信息表明插件安裝成功

                       

        第一步:導入jar包

                                

                      

                   我們從官方download的jar包,lib文件夾下required文件夾中所有的jar包都必須導入。同時我們還需要導入下面的包

                    

       同時,因爲使用hibernate的時候有日誌信息輸出,但是hibernate本身是沒有日誌信息輸出的相關jar包的,所以我們還需要導入其他的相關jar包

                   

本人使用maven進行項目的構建,其jar包的導入使用maven來管理依賴,可以省去麻煩的jar包尋找和導入過程。

                       

        第二步:創建實體類(包括set和get方法)

                       

         第三步:創建是數據庫並配置實體類和數據庫表的對應關係

          Hibernate在使用的時候,我們不需要創建手動創建表,hibernate自動完成。配置實體類和數據庫表的映射關係的時候,使用配置文件來實現 創建xml格式的配置文件映射配置文件的格式沒有固定的要求,但是我們通常建議在實體類所在的包裏面來創建。本人使用eclipse插件來創建對應的hbm.xml文件。

                         

                    使用插件創建完成之後得到的映射文件爲:

                            

      我們可以注意到,id下面有一個<generator class = "主鍵生成策略">其主鍵生成策略包括以下幾種:

      1)  assigned

          主鍵由外部程序負責生成,在 save() 之前指定。

      2)  hilo

          通過hi/lo 算法實現的主鍵生成機制,需要額外的數據庫表或字段提供高位值來源。

      3)  seqhilo

          與hilo 類似,通過hi/lo 算法實現的主鍵生成機制,需要數據庫中的 Sequence,適用於支持 Sequence 的數據庫,如Oracle。

      4)  increment

         主鍵按數值順序遞增。此方式的實現機制爲在當前應用實例中維持一個變量,以保存着當前的最大值,之後每次需要生成主鍵的時候將此值加1作爲主鍵。這種方式可能產生的問題是:不能在集羣下使用。

       5)  identity

          採用數據庫提供的主鍵生成機制。如DB2、SQL Server、MySQL 中的主鍵生成機制。

       6)  sequence

          採用數據庫提供的 sequence 機制生成主鍵。如 Oralce 中的Sequence。

       7)  native

          由 Hibernate 根據使用的數據庫自行判斷採用 identity、hilo、sequence 其中一種作爲主鍵生成方式。

       8)  uuid.hex

          由 Hibernate 基於128 位 UUID 算法 生成16 進制數值(編碼後以長度32 的字符串表示)作爲主鍵。

       9)  uuid.string

          與uuid.hex 類似,只是生成的主鍵未進行編碼(長度16),不能應用在 PostgreSQL 數據庫中。

      10) foreign

          使用另外一個相關聯的對象的標識符作爲主鍵。


        第四步:創建hibernate的核心配置文件

            核心配置文件格式:名稱和位置是固定的 (使用插件)

  1. 配置數據庫信息

                   

                      3、配置hibernate信息

 

注:請嚴格按照這樣的步驟進行項目的構建,因爲這樣能夠保證你在寫配置文件的時候可以直接使用 Alt + / 快捷調出想要的各個屬性名及其值,如果沒按照這樣的步驟進行,那麼很有可能你不能直接生成配置文件或者使得你必須花費大量的時間輸入配置信息很影響效率

3.2 添加功能實現(運行調試)

            第一步:創建session工廠

                             

            第二步:編寫運行測試類

                             

            第三步:查看結果

                            

                     由此可見,程序運行是成功的,mysql中成功生生了對應的數據表(沒有提前創建表,程序自動生成的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章