公眾號文章匯總
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-xxx.jar 放到你項目的類路徑下(classpath);
如果是 Maven 項目,在 pom.xml 中添加如下依賴即可;
總結
以上就是今天的所有內容了,主要講了持久化相關的知識,然后對 Mybatis 做了簡單的介紹以及我們為什么要用 Mybatis,最后則是如何安裝 Mybatis。原創不易,如果你覺得我寫的內容對你有所幫助,那就關注吧。
Java JDBC MyBatis
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。