执行SQL-DefaultSqlSession.selectOne()
生活随笔
收集整理的這篇文章主要介紹了
执行SQL-DefaultSqlSession.selectOne()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
selectOne()最終也是調用了selectList()。
在SelectList()中,我們先根據command name(Statement ID)從Configuration中拿到MappedStatement,這個ms 上面有我們在xml 中配置的所有屬性,包括id、statementType、sqlSource、useCache、入參、出參等等。
然后執行了Executor 的query()方法
前面我們說到了Executor 有三種基本類型,同學們還記得是哪幾種么?
SIMPLE/REUSE/BATCH,還有一種包裝類型,CachingExecutor。
那么在這里到底會選擇哪一種執行器呢?
我們要回過頭去看看DefaultSqlSession 在初始化的時候是怎么賦值的,這個就是我們的會話創建過程。
如果啟用了二級緩存,就會先調用CachingExecutor 的query()方法,里面有緩存相關的操作,然后才是再調用基本類型的執行器,比如默認的SimpleExecutor。
在沒有開啟二級緩存的情況下,先會走到BaseExecutor 的query()方法(否則會先走到CachingExecutor)。
?
總結
以上是生活随笔為你收集整理的执行SQL-DefaultSqlSession.selectOne()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 执行SQL-MapperMethod.e
- 下一篇: BaseExecutor.query()