當前位置:
首頁 > 最新 > MyBatis使用筆記——原始方法開發dao層

MyBatis使用筆記——原始方法開發dao層

前面的增、刪、改、查程序,基本上套路都是一樣,先載入配置文件SqlMapConfig.xml創建SqlSessionFactoryBuilder對象,然後使用SqlSessionFactoryBuilder對象得到SqlSessionFactory對象,接著使用SqlSessionFactory對象獲取到sqlSession對象;通過sqlSession對象來操作資料庫,操作完成後釋放資源,如果是新增、修改、刪除操作還需要在釋放資源前提交會話。這些例子的實現過程中也有大量重複的模板代碼可以提煉後簡化。

首先,我們的SqlSessionFactory在應用中能夠復用,應該實現為一個單例模式,只需要一個就好了。

其次,我們的SqlSessionFactoryBuilder用來創建SqlSessionFactory這個單例工廠類,它實現為一個工具類(靜態)類就好了。

最後,我們的sqlSession類,它是面向開發用戶的,它提供了操作資料庫的方法和數據域(輸入輸出),因此它本身是線程不安全,通常它需要放在方法內或定義為局部變數使用。

原始的dao層開發方法指的是需要程序員寫dao介面和dao介面的實現類。

首先,我們創建新的源碼包,如下:

在這個包中,我們創建客戶的介面,注意這裡只有介面,還沒有實現,對於中大型團隊開發,提供介面後就可以讓介面調用方使用了。

接下來,我們來寫介面的實現類。在介面實現類中,首先要實現介面中的4個方法;其次,我們需要在實現類的構造函數里向dao實現類注入SqlSessionFactory,這樣,實現類的方法中就能獲得sqlSession後操作資料庫。介面的實現和前面記錄的增刪改查邏輯是類似的,但是代碼量和重複的模板方法少了很多,程序結構上也清晰了很多。

接著,我們開始驗證我們這種方法的效果,首先創建一個test.MyBatis.dao的源文件夾,如下:

在介面實現類CustData上新建一個JuniTest case如下:

下一步選擇要測試的4改方法,注意要勾選測試初始化方法setUp(),點擊確定即可。

然後,我們的測試類定義了一個sqlSessionFacotry的成員變數,並在setUp()方法中通過配置文件初始化這個工廠類,後面具體的測試方法中,使用CustDao的介面方法直接調用並輸出介面即可。

具體測試方法的執行結果和之前的預期一致,這裡不再貼圖了。

從上面的dao層開發可以看出,相比之前的增刪改查實現,確實清晰、簡單了很多,但原始dao開發方法,介面實現類方法中存在大量的模板方法可考慮提取出來減少工作量;調用sqlSession方法時將statement的id硬編碼,不便於擴展;調用sqlSession方法時,由於參數值泛型,傳參即使錯誤也無法在編譯階段中發現。如何徹底解決這些問題將在後續使用Mapper代理的方法中介紹。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

線程池定製初探

TAG:全球大搜羅 |