在前面兩篇的MyBatis源碼解讀中,我們一路跟蹤到了MapperProxy,知道了盡管是使用了動態代理技術使得我們能直接使用接口方法。為鞏固加深動態代理,我們不妨再來回憶一遍何為動態代理。 我相信在初學MyBatis的時候幾乎每個人都會發出一個疑問,為什么明明是XXXDao接口,我沒有用 ...
從 lt MyBatis框架中Mapper映射配置的使用及原理解析 七 MapperProxy,MapperProxyFactory gt 文中,我們知道Mapper,通過MapperProxy代理類執行他的接口方法,當mapper方法被調用的時候對應的MapperProxy會生成相應的MapperMethod並且會緩存起來,這樣當多次調用同一個mapper方法時候只會生成一個MapperMeth ...
2017-09-20 00:29 0 2670 推薦指數:
在前面兩篇的MyBatis源碼解讀中,我們一路跟蹤到了MapperProxy,知道了盡管是使用了動態代理技術使得我們能直接使用接口方法。為鞏固加深動態代理,我們不妨再來回憶一遍何為動態代理。 我相信在初學MyBatis的時候幾乎每個人都會發出一個疑問,為什么明明是XXXDao接口,我沒有用 ...
MapperMethod中內部靜態類SqlCommand的作用 在MapperMethod初始化中,會首先初始化兩個內部靜態類,SqlCommand就是其中之一,SqlCommand的作用主要體現在MapperMethod類的execute()方法里,SqlCommand為其提供 ...
MethodSignature分析 MethodSignature為MapperMethod類提供了三個作用,獲取待執行方法中的參數和@Param注解標注的參數名,獲取標注有@MapKey的參數(@Mapkey作用在后續會講到),方法的返回類型,獲取SELECT操作時必要的標志位。以下 ...
在PreparedStatementHandler中的query()方法中,用ResultSetHandler來完成結果集的映射。 ResultSetHandler負責處理兩件事: ...
我們先Mapper接口的調用方式,見<MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置與使用>的示例: sqlsession.getMapper(UserMapper.class) 也就是調用DefaultSqlSession的對應方法 ...
我們回顧<MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置與使用> 一文的示例 SqlSessionFactoryBuilder 創建出SqlSessionFactory,然后從SqlSessionFactory中得到SqlSession,最后 ...
從上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我們知道DefaultSqlSession的getMapper方法,最后是通過MapperRegistry對象獲得Mapper實例: 從代碼中我們看到試圖從一 ...
Executor分成兩大類,一類是CacheExecutor,另一類是普通Executor。 普通類又分為: ExecutorType.SIMPLE: 這個執行器類型不做特殊的事情。它為每個語句 ...