MyBatis 的一级缓存和二级缓存的key,value分别是什么?
MyBatis 的一级缓存和二级缓存的key,value分别是什么
回答
一级二级缓存的key和value都是一样的,只是入口不一样
key=statementId+offset+limit+sql+paramValueList+environmentId
value=List<E>
代码:org.apache.ibatis.executor.BaseExecutor#createCacheKey(MappedStatement ms, Object parameterObject, RowBounds rowBounds, BoundSql boundSql)
org.apache.ibatis.executor.BaseExecutor#queryFromDatabase(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey key, BoundSql boundSql)
一级缓存的入口可以从SimpleExecutor看,二级缓存看CachingExecutor