## 一、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的跨平臺特性,我們的系統可以在不同操作系統之間切換。但由于數據庫之間的差異,系統在數據庫平臺之間的遷移卻遇到了阻力。上面提及的這些成熟持久層框架,由于設計上的良好隔離,從而提供了對不同數據庫的良好支持,我們只需簡單地修改其配置參數,即可實現底層數據庫的切換。
- 前言
- 菜鳥學習Struts——配置Struts環境
- 菜鳥學習Struts——簡易計算器
- 菜鳥學習Struts——bean標簽庫
- 菜鳥學習Struts——Scope屬性
- 菜鳥學習Struts——國際化
- 菜鳥學習Struts——總結
- 菜鳥學習Hibernate——配置Hibernate環境
- 菜鳥學習Hibernate——持久層框架
- 菜鳥學習Hibernate——簡單的一個例子
- 菜鳥學習Hibernate——簡單的增、刪、改、查操作
- 菜鳥學習Hibernate——一對多關系映射
- 菜鳥學習Hibernate——多對多關系映射
- 菜鳥學習Hibernate——緩存
- 菜鳥學習Spring——初識Spring
- 菜鳥學習Spring——第一個例子
- 菜鳥學習Spring——60s讓你學會動態代理原理
- 菜鳥學習Spring——60s使用annotation實現簡單AOP
- 菜鳥學習Spring——60s配置XML方法實現簡單AOP
- 菜鳥學習Spring——60s利用JoinPoint獲取參數的值和方法名稱
- 菜鳥學習Spring——60s學會Spring與Hibernate的集成
- 菜鳥學習SSH——目錄
- 菜鳥學習Spring——SpringMVC注解版前臺向后臺傳值的兩種方式
- 菜鳥學習Spring——SpringMVC注解版在服務器端獲取Json字符串并解析
- 菜鳥學習Spring——SpringMVC注解版將URL中的參數轉成實體
- 菜鳥學習Spring——SpringMVC注解版解析不同格式的JSON串
- 菜鳥學習Spring——SpringIoC容器基于三種配置的對比