Mybatis源码分析开篇
Mybatis的由來
iBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。
iBATIS一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAOs)
mybatis究竟是什么
其實Mybatis就是封裝了JDBC,讓JDBC的操作更加簡單,為什么這么說呢?我們來看下面的說明:
一次完整的JDBC操作數據庫包括以下步驟:
1、 加載數據庫驅動
2、 創建并獲取數據庫鏈接
3、 創建jdbc statement對象
4、 設置sql語句
5、 設置sql語句中的參數(使用preparedStatement)
6、 通過statement執行sql并獲取結果
7、 對sql執行結果進行解析處理
8、 釋放資源
Mybatis封裝后:
1、我們發現假如每次我們查詢數據都要創建數據庫鏈接的話,會大大消耗我們的資源,因為建立鏈接是一個很耗時的過程,所以Mybatis有連接池來解決這個問題。
2、創建jdbc statement對象,設置sql語句 需要在訪問之前操作,若是在代碼中以硬編碼的形式來實現的話,不利于維護,所以Mybatis有mapper.xml來統一管理,比較直觀方便。
3、預編譯情況下,要把占位符的地方替換成參數傳入,Mybatis自動解析傳入的參數替換mapper.xml中設置好的占位符。
4、查詢出結果后,用JDBC把結果集映射成對象非常麻煩,所以Mybatis能用resultMap來把結果集映射成對象。
雖然看起來,Mybatis的操作與JDBC完全不一樣,但是在底層的操作確實JDBC,所以說,Mybatis是對JDBC的一次封裝,讓我們開發在對數據庫進行操作的時候更加方便。
假如你沒用過JDBC和Mybatis的話,你可能不會有所共鳴,Mybatis確實讓程序員在訪問數據庫的時候,少干了不少活,而且我們能很輕松的對sql語句進行維護。
學習源碼必備的技能
接下的篇幅,LZ會帶各位去學習一下Mybatis的源碼,需要一定的基礎,個人覺得,需要看懂的話必須要先掌握以下技能:
(1)幾個必要的設計模式
1、建造者模式。2、代理模式(重點)。3、工廠模式。4、享元模式。……
(2)會使用Mybatis(后面會穿插著介紹如何使用),最好有一定的開發經驗
(3)會使用JDBC(因為底層是JDBC,了解的話,能更好的理解Mybatis到底在干什么)
希望各位看官能在這個系列學到一點東西,理解mybatis設計的妙處。
總結
以上是生活随笔為你收集整理的Mybatis源码分析开篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业用微型计算机(12)-指令系统(7)
- 下一篇: mxnet基础到提高(48)-ones和