欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MyBatis的發(fā)展和選型-創(chuàng)新互聯

數據層框架的發(fā)展史

JDBC編碼的幾大問題和MyBatis等框架的發(fā)展支持原因?
在最初編寫JDBC連接數據庫的時候,各種代碼操作較為復雜,而且有很多缺陷。缺陷總結如下:

創(chuàng)新互聯是一家專業(yè)提供岳陽縣企業(yè)網站建設,專注與網站制作、網站設計、H5建站、小程序制作等業(yè)務。10年已為岳陽縣眾多企業(yè)、政府機構等服務。創(chuàng)新互聯專業(yè)網站設計公司優(yōu)惠進行中。
  • 方法的封裝問題
  • 數據源的支持
  • 映射結果集的接收和處理
  • SQL語句硬編碼
  • 程序參數只能按照順序傳入(占位符)
  • 沒有實現實體類到數據庫記錄的映射
  • 沒有提供緩存等功能

工具類封裝的出現解決了一部分問題

相應的工具類如:springjdbc、jdbcutils、Apache DbUtils等。這樣的工具類主要解決了一下幾個問題:

  • 方法的封裝
  • 數據源的支持
  • 映射結果集

工具類的響應實現解決了部分JDBC的缺陷,但是并不完美。每一次的改進和工具類的出現的就是我們框架的前身出現,框架也是工具。在越來越完善的解決方案的出現之后,ORM框架基本就成型了。同時解決了以上JDBC列出來的各種問題。

ORM框架,全稱Object Relational Mapping,對象關系的映

面向對象的開發(fā)方法是當今企業(yè)級應用開發(fā)環(huán)境中的主流開發(fā)方法,關系數據庫是企業(yè)級應用環(huán)境中永久存放數據的主流數據存儲系統(tǒng)。對象和關系數據是業(yè)務實體的兩種表現形式,業(yè)務實體在內存中表現為對象,在數據庫中表現為關系數據。內存中的對象之間存在關聯和繼承關系,而在數據庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)系統(tǒng)一般以中間件的形式存在,主要實現程序對象到關系數據庫數據的映射。

ORM框架的基本準則

  • A. 簡單:ORM以最基本的形式建模數據。比如ORM會將MySQL的一張表映射成一個Java類(模型),表的字段就是這個類的成員變量
  • B. 精確:ORM使所有的MySQL數據表都按照統(tǒng)一的標準精確地映射成java類,使系統(tǒng)在代碼層面保持準確統(tǒng)一
  • C.易懂:ORM使數據庫結構文檔化。比如MySQL數據庫就被ORM轉換為了java程序員可以讀懂的java類,java程序員可以只把注意力放在他擅長的java層面(當然能夠熟練掌握MySQL更好)
  • D.易用:ORM包含對持久類對象進行CRUD操作的API,例如create(), update(), save(), load(), find(), find_all(), where()等,也就是講sql查詢全部封裝成了編程語言中的函數,通過函數的鏈式組合生成最終的SQL語句。通過這種封裝避免了不規(guī)范、冗余、風格不統(tǒng)一的SQL語句,可以避免很多人為Bug,方便編碼風格的統(tǒng)一和后期維護。

最早的ORM框架hibernate

Hibernate是一種ORM框架,全稱為 Object_Relative DateBase-Mapping,在Java對象與關系數據庫之間建立某種映射,以實現直接存取Java對象!

Hibernate 優(yōu)勢
  • 類別到數據庫表格中,并且不用編寫任何代碼。
  • 為在數據庫中直接儲存和檢索 Java 對象提供簡單的 APIs。
  • 如果在數據庫中或任何其它表格中出現變化,那么僅需要改變 XML 文件屬性。
  • 抽象不熟悉的 SQL 類型,并為我們提供工作中所熟悉的 Java 對象。
  • Hibernate 不需要應用程序服務器來操作。
  • 操控你數據庫中對象復雜的關聯。
  • 最小化與訪問數據庫的智能提取策略。
  • 提供簡單的數據詢問。
    Hibernate 響應的一些問題
  • 無法自定義SQL,優(yōu)化相對困難
  • 不制動動態(tài)的SQL
  • 復雜的表關系會導致Hibernate開發(fā)難度
  • 加載問題

什么是 MyBatis?

是一款面向對象和返回集關系的數據層封裝,有效的減少jdbc的代碼。

缺點:
  • 不方便移植,數據庫更換需要字段比較麻煩,需要改寫sql
  • 對開發(fā)人員所寫的SQL依賴很強。
    優(yōu)點:
  • 使用連接池對連接進行管理
  • SQL和代碼分離,集中管理
  • 參數映射和動態(tài)SQL
  • 結果集映射
  • 緩存管理
  • 重復SQL的提取
  • 插件機制
  • 手寫sql,能夠有效的精準把控查詢的速度,便于優(yōu)化查詢速度
  • mybatis不會對應用程序或者數據庫的現有設計強加任何影響
  • 通過提供DAO層,將業(yè)務邏輯和數據訪問邏輯分離,使系統(tǒng)的設計更清晰,更易維護,更易單元測試。
  • 保證名稱相同,配置好映射關系即可自動映射或者,不配置映射關系,通過配置列名=字段名也可完成自動映射。

什么是 Spring Data JPA(本文JPA只寫Spring Data JPA)

Spring Data JPA是更大的Spring Data系列的一部分,可以輕松實現基于JPA的存儲庫。此模塊處理對基于JPA的數據訪問層的增強支持。它使構建使用數據訪問技術的Spring驅動應用程序變得更加容易。

選擇什么樣的ORM框架參考:

  • 業(yè)務相對簡單項目可以使用Hibernate
  • 需要靈活SQL的選擇可以使用MyBatis(SQL過長和SQL很復雜的情況)
  • 對性能要求比較高可以使用JDBC(如:我們寫的項目很小,或者說就是需要幾個接口,這個時候我們選擇框架就會過于臃腫和復雜)
  • Sping JDBC可以和 ORM框架混合使用(這種情況很少,但是如果某些業(yè)務可能單獨需要數據源對接某一個接口,這個時候可能要適配器兼容JDBC接入)

創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。

當前文章:MyBatis的發(fā)展和選型-創(chuàng)新互聯
鏈接分享:http://www.chinadenli.net/article2/doisoc.html

成都網站建設公司_創(chuàng)新互聯,為您提供微信小程序企業(yè)建站軟件開發(fā)網站建設ChatGPT建站公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站托管運營