mybatis學習(一)基本概念
阿新 • • 發佈:2019-02-19
一、mybatis簡介
Mybatis前身是ibatis,是apache的一個開源項,2010年這個專案由apache software foundation 遷移到了google code,並且改名為MyBatis。是一個java語言編寫的ORM框架,支援普通的sql查詢、儲存過程、高階對映的持久層框架。
使用過hibernate的可以直接跳過這篇文章,直接看第二節看mybaits如何快速搭建,然後回頭再看這篇文章。
1.ORM工具基本思想:
無論是使用hibernate還是mybatis,他們的共同點都是:
a.(1)通過配置檔案得到sessionFactory。
(2)通過sessionFactory建立session
(3)session完成增刪改查和事務的提交回滾等。
(4)關閉session
b. java物件和資料庫之間進行mapping對映 ,通常通過xml或者註解形式。
二、mybatis優缺點
優點:
(1)易於上手和掌握。
(2)sql寫在xml中,便於統一管理和優化。也可以放到annotation註解中。
(3)將誒出sql與程式程式碼的耦合。
(4)提供對映標籤,支援物件關係元件維護。
(5)提供xml編寫動態的sql。
缺點:
(1)sql工作量大
(2)sql依賴於資料庫,倒是資料庫移植性變差。
(3)xml中標籤id必須唯一,導致Dao方法不支援方法過載。
(4)不支援級聯更新、級聯刪除。
(5)編寫動態sql時,不方便除錯,尤其是邏輯複雜的時候。
二、mybatis功能架構分層
如圖3.1所示,是mybatis功能架構圖。
mybatis分為3層結構:1) API介面層:提供給外部使用的介面API,開發人員通過這些本地API來操縱資料庫。介面層一接收到呼叫請求就會呼叫資料處理層來完成具體的資料處理。是mybatis的實體類Mapper介面,如interface UserMapper{...增刪改查}。
2) 資料處理層:負責具體的SQL查詢、SQL解析、SQL執行和執行結果對映處理等。它主要的目的是根據呼叫的請求完成一次資料庫操作。解析實體mapper.xml檔案,處理對映等。
3) 基礎支撐層:負責最基礎的功能支撐,包括連線管理、事務管理、配置載入和快取處理,這些都是共用的東西,將他們抽取出來作為最基礎的元件。為上層的資料處理層提供最基礎的支撐。解析configuration.xml配置資料來源等。
圖3.1 mybatis功能架構圖