什么是 MyBatis

      網友投稿 767 2025-04-01

      前言

      什么是持久化

      持久化是 將程序數據在持久狀態和瞬時狀態間轉換的機制,將數據保存到可永久保存的存儲設備中。最常見的就是將內存中的對象存儲在數據庫中,或者存在磁盤文件、XML 數據文件中等等。其中,文件 IO 屬于持久化機制,而 JDBC 也是一種持久化機制。

      為什么需要持久化

      之所以需要持久化,是由于內存自身缺陷導致。我們知道,內存在遇到某些外界因素影響后會丟失,但是我們的一些數據是絕對不能丟失的,但我們又無法保證不收外界因素影響。同時內存成本較高,比起硬盤、光盤等外存,其價格要高上幾個數量級,而且維持成本也較高。在這種情況下,我們不得不尋求另一種方案來存儲數據對象,而持久化就是其中的一種選擇,我們能夠通過持久化將數據緩存到外存,從而降低成本。

      什么是持久層

      所謂持久層,就是用于完成持久化工作的代碼塊(dao 層【DAO(Data Access Object)】)。數據持久化通常都是將內存中的數據保存到磁盤中來加以固化,而實現這一過程大多是通過 關系數據庫 來完成。而且比起其他部分,該層需要有一個較為清晰和嚴格的邏輯邊界。

      什么是 MyBatis

      為什么不用 JDBC?

      針對數據庫操作,Java 其實已經提供了相應的解決方案 – JDBC。那既然已經有了現成的工具,那為什么還會有 MyBatis 的出現呢?

      雖然 JDBC 提供了對數據庫操作的解決方案,但是存在著如下問題:

      數據庫連接的頻繁創建和釋放造成了一定程度上的資源浪費,從而影響到系統性能,但如果使用數據庫連接池就能在一定程度上緩解該問題;

      SQL 語句在代碼中出現,會造成代碼不易維護;

      使用 preparedStatement 向占位符傳遞參數時存在硬編碼,也會進一步加大系統維護的難度;

      對結果集進行解析時存在硬編碼,SQL 變化將導致解析代碼改變,系統難以維護,但如果能將數據庫記錄進行封裝成 POJO 對象,解析起來就會方便很多。

      MyBatis 介紹

      MyBatis 是一個持久層框架,是一個半自動化的 ORM 框架,不僅支持自定義 SQL、存儲過程以及高級映射。還簡化了 JDBC 代碼以及設置參數和獲取結果集的工作過程,使得我們只需要通過簡單的 XML 或注解配置,就能將原始類型、接口和 Java POJO 映射為數據庫中的記錄。

      通過對 JDBC 操作數據庫的過程進行封裝,我們只需要關注 SQL 而不用再去處理注冊驅動、創建 connection、創建 statement、手動設置參數、結果集檢索等復雜的過程代碼。

      不同于其他的對象關系映射框架,MyBatis 并未將 Java 對象和數據庫表關聯,而是將 Java 方法與 SQL 語句關聯。

      總的來講,MyBatis 有如下優點:

      簡單易學:自身小且簡單,無任何第三方依賴;

      靈活:MyBatis 不會對應用程序或數據庫的現有設計強加任何影響,寫在 XML 中,便于統一管理和優化;

      解除 SQL 與代碼程序的耦合:通過提供 DAO 層,將業務邏輯與數據訪問邏輯分離,使系統設計更加清晰、易維護、易于單元測試,提高了程序的可維護性;

      提供 XML 標簽,支持編寫動態 SQL;

      什么是 MyBatis

      MyBatis 安裝

      首先下載最新版本 MyBatis;

      解壓下載好的安裝包,將 mybatis-xxx.jar 放到你項目的類路徑下(classpath);

      如果是 Maven 項目,在 pom.xml 中添加如下依賴即可;

      org.mybatis mybatis x.x.x

      總結

      以上就是今天的所有內容了,主要講了持久化相關的知識,然后對 Mybatis 做了簡單的介紹以及我們為什么要用 Mybatis,最后則是如何安裝 Mybatis。原創不易,如果你覺得我寫的內容對你有所幫助,那就關注吧。

      Java JDBC MyBatis

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:零代碼開發平臺有哪些?國內十大零代碼平臺排名
      下一篇:掃描槍掃了二維碼,在文本文檔顯示后,兩串二維碼中間有空格,在哪設置才能更改掃描時沒有空格。
      相關文章
      综合亚洲伊人午夜网| 免费在线观看亚洲| 中文字幕在线日亚洲9| 综合亚洲伊人午夜网 | 久久久久亚洲AV片无码下载蜜桃 | 亚洲av日韩av不卡在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 精品亚洲A∨无码一区二区三区| 亚洲人成无码www久久久| 亚洲18在线天美| 久久亚洲国产精品123区| 亚洲国产精品成人AV在线| 亚洲免费观看在线视频| 亚洲av无码不卡| 久久亚洲2019中文字幕| 亚洲一区二区视频在线观看| 亚洲精品麻豆av| 久久久久久亚洲精品无码| 精品亚洲成A人在线观看青青| 亚洲AV香蕉一区区二区三区| 亚洲免费福利在线视频| 亚洲理论在线观看| 亚洲第一AAAAA片| 中文字幕亚洲日本岛国片| 亚洲免费人成在线视频观看| 亚洲?V无码成人精品区日韩| 亚洲日本一线产区和二线产区对比| 91亚洲自偷在线观看国产馆| 亚洲Av无码一区二区二三区| 亚洲无人区码一二三码区别图片| 亚洲精品无码成人片久久不卡 | 欧美色欧美亚洲另类二区| www亚洲精品久久久乳| 亚洲精品国产va在线观看蜜芽| 国产亚洲人成A在线V网站| 亚洲国产成人高清在线观看| 久久久久亚洲AV片无码下载蜜桃| 亚洲国产精品成人久久久| 亚洲乱码无人区卡1卡2卡3| 狠狠入ady亚洲精品| 国产亚洲人成网站在线观看|