亚洲福利网站,国产精品久久国产三级国电话系列 ,欧美久久久久久,蜜桃av在线

IT培訓-高端面授IT培訓機構
云和教育:云和數據集團高端IT職業教育品牌
  • 國家級
    全民數字素養與技能培訓基地
  • 河南省
    第一批產教融合型企業建設培育單位
  • 鄭州市
    數字技能人才(碼農)培養評價聯盟
當前位置:
首頁IT問答正文

技術干貨:MyBatis框架如何解決JDBC編程劣勢?

  • 發布時間:
    2022-06-07
  • 版權所有:
    云和教育
  • 分享:

JDBC是Java程序實現數據訪問的基礎,JDBC的劣勢主要有以下幾個方面。

(1)數據庫連接創建、釋放頻繁會造成系統資源浪費,從而影響系統性能。

(2)SQL語句在代碼中硬編碼,造成代碼不易維護。在實際應用的開發中,SQL變化的可能性較大。在傳統JDBC編程中,SQL變動需要改變Java代碼,違反了開閉原則。

(3)用PreparedStatement向占位符傳參數存在硬編碼,因為SQL語句的where條件不一定,可能多也可能少,修改SQL需要修改代碼,造成系統不易維護。

(4)JDBC對結果集解析存在硬編碼(查詢列名),SQL變化導致解析代碼變化,造成系統不易維護。

 

MyBatis框架支持普通SQL查詢、存儲過程以及高級映射的持久層框架,它消除了幾乎所有的JDBC代碼和參數的手動設置以及對結果集的檢索,使用簡單的XML或注解進行配置和原始映射,將接口和Java的POJO映射成數據庫中的記錄,使得Java開發人員可以使用面向對象的編程思想來操作數據庫。

MyBatis框架是一個ORM(Object/Relation Mapping,即對象關系映射)框架。所謂的ORM就是一種為了解決面向對象與關系型數據庫中數據類型不匹配的技術,它通過描述Java對象與數據庫表之間的映射關系,自動將Java應用程序中的對象持久化到關系型數據庫的表中。ORM框架的工作原理可以通過一張圖來展示。

ORM框架的工作原理
針對JDBC編程的劣勢,MyBatis提供了以下解決方案,具體如下。

問題一:數據庫鏈接創建、釋放頻繁會造成系統資源浪費,從而影響系統性能。
解決方案:在SqlMapConfig.xml中配置數據鏈接池,使用連接池管理數據庫鏈接。

問題二:SQL語句在代碼中硬編碼,造成代碼不易維護。在實際應用的開發中,SQL變化的可能較大。在傳統JDBC編程中,SQL變動需要改變Java代碼,違反了開閉原則。

解決方案:MyBatis將SQL語句配置在MyBatis的映射文件中,實現了與Java代碼的分離。

問題三:使用preparedStatement向占位符傳參數存在硬編碼,因為SQL語句的where條件不一定,可能多也可能少,修改SQL需要修改代碼,造成系統不易維護。

解決方案:MyBatis自動將Java對象映射至SQL語句,通過Statement中的parameterType定義輸入參數的類型。

問題四:JDBC對結果集解析存在硬編碼(查詢列名),SQL變化導致解析代碼變化,造成系統不易維護。

解決方案:MyBatis自動將SQL執行結果映射至Java對象,通過Statement中的resultType定義輸出結果的類型。

主站蜘蛛池模板: 南漳县| 浮山县| 上犹县| 永平县| 赤城县| 邳州市| 沙湾县| 黔西县| 上高县| 固安县| 保靖县| 河源市| 疏勒县| 苏尼特左旗| 巴彦淖尔市| 太谷县| 福贡县| 伊春市| 龙川县| 闸北区| 福贡县| 左云县| 金坛市| 永川市| 连南| 怀柔区| 原阳县| 松溪县| 黄大仙区| 民县| 房山区| 宁强县| 邹城市| 高青县| 海林市| 朝阳市| 淄博市| 伊吾县| 汕头市| 平泉县| 东山县|