mybatis的世界觀
mybatis是什麼?
書面定義:MyBatis 是一款優秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或註解來配置和映射原始類型、接口和 Java POJO爲數據庫中的記錄。
mybatis是一個持久層的框架,也就是操作數據庫的框架。
mybatis幫我們免除了基本jdbc的操作,將注意力專心到sql的編寫上。
mybatis幫我們免除了參數映射,結果集映射操作。
總體來說:mybatis操作簡單,性能優秀。
mybatis如何做的?
mybatis主要做的都是針對jdbc操作的封裝,對sql配置的拆解封裝。
我們來看看mybatis的內部操作流程
SqlSession是統一對外的接口,用戶層面只需要操作SqlSession就可以了,這裏比較符合程序的設計思想,單一職責,最少知識原則
執行器:執行用戶請求的組件。
statementHandler:這裏就是mybatis的核心部分了,mybatis根據配置中的sql語句,解析出改部分。後續基本上就是圍繞這個組件的配置及使用展開。
parameterHandler:根據獲取到的statementHandler及傳入的參數,對statement進行參數映射,並生成原生JDBC可執行的statement
ResultSet:原生JDBC生成的結果集
ResultSetHandler:結果集與輸出對象映射器。