MyBatis(二)開始學習源碼的切入點

前面介紹了JDBC的基本概念、常見接口和類、基本使用流程、三種statement,就算是對JDBC做了一個瞭解,接下來我們要從MyBatis中的SqlSession和Executor、StatementHandler作爲一個切入點,來進行對MyBatis的解析

首先還是來了解一下基本概念

一、SqlSession(sql會話)

SqlSession是MyBatis中進行操作的關鍵對象,在這個對象中包含了增刪改查、開啓事物等基本操作,是操作數據庫的總入口。SqlSession底層封裝了JDBC,但是它是怎麼封裝JDBC的不是這篇文章的重點,我們的重點先放在SqlSession的基本結構上
在SqlSession的實現類DefaultSqlSession內部,有一個對象 private final Executor executor,SqlSession的具體操作都是交給executor來完成的,所以可以看出,一個SqlSession
SqlSession對象不是線程安全的,不能夠跨線程調用,在使用完之後就應該及時關閉調

觀察下面SqlSession的接口,我們可以發現,它有很多方法都是同名的,如果我們去看實現類DefaultSqlSession,就會發現,全部同名的方法,最終都是會調用一個參數最多的方法來實現,這就是所謂的門面模式,這樣設計的初衷就是爲了讓我們更加方便的調用這個類

public interface SqlSession extends
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章