Hiberante框架淺談

Hiberante框架     

   1:   hibernate是一個  開源的 輕量級的 持久層  ORM框架    ,apache的產品

         什麼是 ORM
         Objcet           Relation            Mapping
          對象                關係                   映射    


             面向對象                        面向關係  
             類                                  表
             對象                               表的行(記錄 )
             屬性                               表的列(字段)

   2:  搭建一個  hibernate框架     

    1: 創建javaproject項目
    2: 導入jar包  hibernate-release-4.2.19.Final\lib\required   下所有的 jar包   
                    還需要導入一個jar包      數據庫 的 驅動包
    3:編寫hibernate的核心配置文件      
    4定義實體類(entity,pojo,domain,perudre)
    5 編寫實體類的配置文件(實體類名.hbm.xml) --對象關係映射文件
        作用:描述類和數據庫中表之間的關係
    6 編寫hibernate代碼完成增刪改查的操作

     內置映射類型
    1).Java基本類型的Hibernate映射類型
    Java類型                         Hibernate映射類型                     標準SQL類型        大小和取值範圍
    int/Integer        int/integer        INTEGER            4Byte
    long/Long           long            BIGINT            8Byte
    short/Short        short            SAMLLINT        2Byte
    byte/Byte            byte            TINYINT            1Byte
    float/Float        float            FLOAT            4Byte
    double/Double        double            DOUBLE            8Byte
    BigDecimal        big_decimal        NUMBERIC        Numeric(8,2)
    char/Character/String    character                         CHAR(1)            定長字符
    String            string            VARCHAR            變長字符
    boolean/Boolean        boolean            BIT            布爾類型
    boolean/Boolean        yes/no            CHAR(1)('Y'/'N')    布爾類型
    boolean/Boolean        true/false             CHAR(1)('T'/'F')    布爾類型

    2). Java時間和日期類型的Hibernate映射類型
    Java類型                Hibernate映射類型        標準SQL類型    描述
    java.util.Date/java.sql.Date        date            DATE        日期,yyyy-mm-dd
    java.util.Date/java.sql.Time        time            TIME        時間,hh:mm:ss
    java.util.Date/java.sql.Timestamp    timestamp        TIMESTAMP    時間戳,yyyymmddhhmmss
    java.util.Calendar            calendar            TIMESTAMP    同上
    java.util.Calendar            calendar_date        DATE        日期,yyyy-mm-dd

    3). Java 大對象類型的Hibernate映射類型
    Java類型        Hibernate映射類型            標準SQL類型    MySql類型    Oracle類型
    byte[]        binary                VARBINARY/BLOB    BLOB        BLOB
    String        text                CLOB        TEXT        CLOB
    serializable    實現serializable接口的java類        VARBINARY/BLOB    BLOB        BLOB
    java.sql.Clob    clob                CLOB        TEXT        CLOB
    java.sql.Blob    blob                BLOB        BLOB        BLOB

  自動建表的類型  
                    create  :    每次運行都會 創建一個新的表   如果表存在  則會刪除之前的表    
                    create-drop  :  每次運行都會創建新的表     SessionFactory關閉後     則會刪除該表 
                    update     : 每次運行  檢查表結構 是否發生變化,如果改變  則更新表,如果表不存在 則創建表  
                    validate    : 不自動創建表   如果表不存在  則 拋異常

          hibernate中對象的 三種狀態     

                                      臨時態   :      1:對象  主鍵屬性 爲  null
                                                             2:該對象和 session沒有關聯  
                                                             3:該對象 和數據庫中的數據沒有對應的關係  

                                     持久態  :        1:該對象位於  session中  和session有直接關聯  
                                                             2:該對象和數據庫中過的數據 有直接的對應關係 
                                                             3:該對象的屬性發生變化的時候 ,數據庫中的數據同步更新

                                      遊離態  :    1:   對象不位於session中    ,   該對象 和session沒有關聯  
                                                           2:  對象 跟數據庫中數據 有可能有對應關係 
                                                           3:  如果吧 遊離態對象和session進行關聯  那麼 該對象就直接轉換成
                                                                  持久態


   緩存     :        cache     hibernate緩存    
              是介於 數據庫 和 程序之間的   將數據庫的內容 備份了一份 保存到內存的一個 容器中   
              如果下次再進行相同數據的查詢的時候  之間讀取 備份的內容     減少 對數據的 訪問    從而提供運行效率             一級緩存   
                        session緩存       hibernate內置 緩存   不能卸載  
                        緩存的範圍   :      和當前的session有關係 ,如果seesion關閉後   緩存失效  ,  
                                                      一級緩存 依賴session的生命週期
           二級緩存
                       sessionFactory緩存         應用緩存    需要第三方插件   可插拔的緩存  
                        所有的 session  共享該緩存      該緩存依賴 sessionFactory 
             
            使用二級緩存    
                              1:  引入  jar包   \hibernate-release-4.2.19.Final\lib\optional\ehcache  所有的jar包  
                              2:  在  hibernate.cof.xml中進行開啓二級緩存  
                                    <property name="hibernate.cache.use_second_level_cache">true</property>
                              3:  指明 使用二級緩存的類名 
          <!-- 加載二級緩存  -->

<property  name="hibernate.cache.region.factory_class">

org.hibernate.cache.ehcache.EhCacheRegionFactory

</property>


                4:  配置二級緩存 

     <defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        />


        5:聲明是 那個類 需要使用二級緩存 

                      <!-- 聲明那個類使用二級緩存  -->
        

<class-cache usage="read-only" class="com.hibernate02.entity.Customer"/>


        
  

   

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