xlecho編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這纔是真正的堪稱強大!!html
參考文章列表:java
數據層框架的發展史
JDBC編碼的幾大問題和MyBatis等框架的發展支持緣由? 在最初編寫JDBC鏈接數據庫的時候,各類代碼操做較爲複雜,並且有不少缺陷。缺陷總結以下:程序員
- 方法的封裝問題
- 數據源的支持
- 映射結果集的接收和處理
- SQL語句硬編碼
- 程序參數只能按照順序傳入(佔位符)
- 沒有實現實體類到數據庫記錄的映射
- 沒有提供緩存等功能
工具類封裝的出現解決了一部分問題
相應的工具類如:springjdbc、jdbcutils、Apache DbUtils等。這樣的工具類主要解決了一下幾個問題:spring
工具類的響應實現解決了部分JDBC的缺陷,可是並不完美。每一次的改進和工具類的出現的就是咱們框架的前身出現,框架也是工具。在愈來愈完善的解決方案的出現以後,ORM框架基本就成型了。同時解決了以上JDBC列出來的各類問題。sql
ORM框架,全稱Object Relational Mapping,對象關係的映
面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關係數據庫是企業級應用環境中永久存放數據的主流數據存儲系統。對象和關係數據是業務實體的兩種表現形式,業務實體在內存中表現爲對象,在數據庫中表現爲關係數據。內存中的對象之間存在關聯和繼承關係,而在數據庫中,關係數據沒法直接表達多對多關聯和繼承關係。所以,對象-關係映射(ORM)系統通常以中間件的形式存在,主要實現程序對象到關係數據庫數據的映射。數據庫
ORM框架的基本準則
- A. 簡單:ORM以最基本的形式建模數據。好比ORM會將MySQL的一張表映射成一個Java類(模型),表的字段就是這個類的成員變量
- B. 精確:ORM使全部的MySQL數據表都按照統一的標準精確地映射成java類,使系統在代碼層面保持準確統一
- C.易懂:ORM使數據庫結構文檔化。好比MySQL數據庫就被ORM轉換爲了java程序員能夠讀懂的java類,java程序員能夠只把注意力放在他擅長的java層面(固然可以熟練掌握MySQL更好)
- D.易用:ORM包含對持久類對象進行CRUD操做的API,例如create(), update(), save(), load(), find(), find_all(), where()等,也就是講sql查詢所有封裝成了編程語言中的函數,經過函數的鏈式組合生成最終的SQL語句。經過這種封裝避免了不規範、冗餘、風格不統一的SQL語句,能夠避免不少人爲Bug,方便編碼風格的統一和後期維護。
最先的ORM框架hibernate
Hibernate是一種ORM框架,全稱爲 Object_Relative DateBase-Mapping,在Java對象與關係數據庫之間創建某種映射,以實現直接存取Java對象!編程
-
Hibernate 優點緩存
-
-
- 爲在數據庫中直接儲存和檢索 Java 對象提供簡單的 APIs。
-
- 若是在數據庫中或任何其它表格中出現變化,那麼僅須要改變 XML 文件屬性。
-
- 抽象不熟悉的 SQL 類型,併爲咱們提供工做中所熟悉的 Java 對象。
-
-
-
-
-
Hibernate 響應的一些問題服務器
-
-
-
-
什麼是 MyBatis?
是一款面向對象和返回集關係的數據層封裝,有效的減小jdbc的代碼。微信
- 缺點:
-
- 不方便移植,數據庫更換須要字段比較麻煩,須要改寫sql
-
- 優勢:
-
-
-
-
-
-
-
-
- 手寫sql,可以有效的精準把控查詢的速度,便於優化查詢速度
-
- mybatis不會對應用程序或者數據庫的現有設計強加任何影響
-
- 經過提供DAO層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。
-
- 保證名稱相同,配置好映射關係便可自動映射或者,不配置映射關係,經過配置列名=字段名也可完成自動映射。
什麼是 Spring Data JPA(本文JPA只寫Spring Data JPA)
Spring Data JPA是更大的Spring Data系列的一部分,能夠輕鬆實現基於JPA的存儲庫。此模塊處理對基於JPA的數據訪問層的加強支持。它使構建使用數據訪問技術的Spring驅動應用程序變得更加容易。
選擇什麼樣的ORM框架參考:
- 業務相對簡單項目可使用Hibernate
- 須要靈活SQL的選擇可使用MyBatis(SQL過長和SQL很複雜的狀況)
- 對性能要求比較高可使用JDBC(如:咱們寫的項目很小,或者說就是須要幾個接口,這個時候咱們選擇框架就會過於臃腫和複雜)
- Sping JDBC能夠和 ORM框架混合使用(這種狀況不多,可是若是某些業務可能單獨須要數據源對接某一個接口,這個時候可能要適配器兼容JDBC接入)
作一個有底線的博客主
原文出處:https://www.cnblogs.com/xlecho/p/11521653.html