<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、Java操作數據庫的階段。 Java對數據庫進行操作經歷了三個階段。 1.1操作JDBC階段 這個階段就是利用JDBC類來操作數據庫。這個階段出現了兩個問題: 代碼過度重復:在每一次數據庫操作的是后都要編寫相似的代碼。實際上每一次這些代碼有的是只是SQL語句改變但是還是得寫一遍。讓我想起第一次用.NET做機房收費系統的時候就寫查詢的時候除了SQL語句不一樣以外其他都一樣。 不能突出業務:整個代碼都是數據庫處理的代碼,體現不出業務操作邏輯。 1.2封裝JDBC階段 這個階段其實就是像.NET一樣寫SQLHelper把一些操作封裝成方法,用到了調用就行了。封裝一些常用的操作比如:加載數據庫驅動,執行更新SQL執行,查詢SQL,關閉對象,關閉數據庫連接等。 1.3ORM階段 ORM(ObjectRelational Mapping)是對象關系映射。這個是對JDBC進行了封裝之后,能夠方便地實現數據庫的操作。ORM它是一種為了解決面向對象與關系數據庫存在的互補匹配的現象的技術。ORM通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關系數據庫中。ORM的實現產品有Apache OJB,Cayenne,Jaxor,iBatis,jRelationalFramework和現在學的Hibernate等。 ## 二、持久層框架 iBatis: 使用ibatis提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM而言基本一致,而對于具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等“全自動”ORM機制而言,ibatis 以SQL開發的工作量和數據庫移植性上的讓步,為系統 設計提供了更大的自由空間。作為“全自動”ORM實現的一種有益補充,ibatis 的出現顯 得別具意義。 Hibernate:這是目前最流行的持久層框架,它是對JDBC的輕量級的對象封裝,可以用在任何JDBC可以使用的場合。 ## 三、總結 持久層框架能為我們提供更方便快捷的開發。一個成熟的持久層框架給我們帶來了一下好處: ·減少了乏味的代碼 持久層框架封裝了數據庫持久層大多數技術細節,讓我們可以從JDBC的編碼中解脫出來,將我們的精力更多的放到有價值的工作中去。 ·更加面向對象設計 ORM為系統設計提供了更加自然的實現方式。我們可以通過ORM將系統中的對象自動映射到各個數據表中,從而編碼中只需關心對象的相關屬性無需在糾纏于JDBCResultSet中的字段數據 ·更好的性能 很多持久層框架提供了優秀的性能優化機制,這些優化的綜合使用大大提升了系統性能。 ·更好的移植性 基于Java的跨平臺特性,我們的系統可以在不同操作系統之間切換。但由于數據庫之間的差異,系統在數據庫平臺之間的遷移卻遇到了阻力。上面提及的這些成熟持久層框架,由于設計上的良好隔離,從而提供了對不同數據庫的良好支持,我們只需簡單地修改其配置參數,即可實現底層數據庫的切換。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看