1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| CacheKey [msId, offset, limit, sql, param..., environmnetId]
Executor - List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey cacheKey, BoundSql boundSql) - int update(MappedStatement ms, Object parameter) - void commit(boolean required) - void rollback(boolean required) - Transaction getTransaction()
BaseExecutor implements Executor - void commit(boolean required) - clearLocalCache(); - transaction.commit(); - void commit(boolean required) - clearLocalCache(); - transaction.commit(); - int update(MappedStatement ms, Object parameter) - clearLocalCache(); - doUpdate(ms, parameter); - List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler) - BoundSql boundSql = ms.getBoundSql(parameter); - CacheKey key = createCacheKey(ms, parameter, rowBounds, boundSql); - List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey key, BoundSql boundSql) - list = resultHandler == null ? (List<E>) localCache.getObject(key) : null; - list = queryFromDatabase(ms, parameter, rowBounds, resultHandler, key, boundSql); - clearLocalCache(); - List<E> queryFromDatabase(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey key, BoundSql boundSql) - list = doQuery(ms, parameter, rowBounds, resultHandler, boundSql); - localCache.putObject(key, list);
SimpleExecutor extends BaseExecutor - Statement prepareStatement(StatementHandler handler, Log statementLog) - Connection connection = getConnection(statementLog); - stmt = handler.prepare(connection, transaction.getTimeout()); - handler.parameterize(stmt); - doUpdate(MappedStatement ms, Object parameter) - stmt = prepareStatement(handler, ms.getStatementLog()); - handler.update(stmt); - List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) - stmt = prepareStatement(handler, ms.getStatementLog()); - handler.update(stmt);
CachingExecutor implements Executor
|