Package org.apache.ibatis.executor
Class BaseExecutor
- java.lang.Object
-
- org.apache.ibatis.executor.BaseExecutor
-
- All Implemented Interfaces:
Executor
- Direct Known Subclasses:
BatchExecutor,ReuseExecutor,SimpleExecutor
public abstract class BaseExecutor extends Object implements Executor
- Author:
- Clinton Begin
-
-
Field Summary
Fields Modifier and Type Field Description protected Configurationconfigurationprotected ConcurrentLinkedQueue<org.apache.ibatis.executor.BaseExecutor.DeferredLoad>deferredLoadsprotected PerpetualCachelocalCacheprotected PerpetualCachelocalOutputParameterCacheprotected intqueryStackprotected Transactiontransactionprotected Executorwrapper-
Fields inherited from interface org.apache.ibatis.executor.Executor
NO_RESULT_HANDLER
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseExecutor(Configuration configuration, Transaction transaction)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidapplyTransactionTimeout(Statement statement)Apply a transaction timeout.voidclearLocalCache()voidclose(boolean forceRollback)protected voidcloseStatement(Statement statement)voidcommit(boolean required)CacheKeycreateCacheKey(MappedStatement ms, Object parameterObject, RowBounds rowBounds, BoundSql boundSql)voiddeferLoad(MappedStatement ms, MetaObject resultObject, String property, CacheKey key, Class<?> targetType)protected abstract List<BatchResult>doFlushStatements(boolean isRollback)protected abstract <E> List<E>doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql)protected abstract <E> Cursor<E>doQueryCursor(MappedStatement ms, Object parameter, RowBounds rowBounds, BoundSql boundSql)protected abstract intdoUpdate(MappedStatement ms, Object parameter)List<BatchResult>flushStatements()List<BatchResult>flushStatements(boolean isRollBack)protected ConnectiongetConnection(Log statementLog)TransactiongetTransaction()booleanisCached(MappedStatement ms, CacheKey key)booleanisClosed()<E> List<E>query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler)<E> List<E>query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey key, BoundSql boundSql)<E> Cursor<E>queryCursor(MappedStatement ms, Object parameter, RowBounds rowBounds)voidrollback(boolean required)voidsetExecutorWrapper(Executor wrapper)intupdate(MappedStatement ms, Object parameter)
-
-
-
Field Detail
-
transaction
protected Transaction transaction
-
wrapper
protected Executor wrapper
-
deferredLoads
protected ConcurrentLinkedQueue<org.apache.ibatis.executor.BaseExecutor.DeferredLoad> deferredLoads
-
localCache
protected PerpetualCache localCache
-
localOutputParameterCache
protected PerpetualCache localOutputParameterCache
-
configuration
protected Configuration configuration
-
queryStack
protected int queryStack
-
-
Constructor Detail
-
BaseExecutor
protected BaseExecutor(Configuration configuration, Transaction transaction)
-
-
Method Detail
-
getTransaction
public Transaction getTransaction()
- Specified by:
getTransactionin interfaceExecutor
-
update
public int update(MappedStatement ms, Object parameter) throws SQLException
- Specified by:
updatein interfaceExecutor- Throws:
SQLException
-
flushStatements
public List<BatchResult> flushStatements() throws SQLException
- Specified by:
flushStatementsin interfaceExecutor- Throws:
SQLException
-
flushStatements
public List<BatchResult> flushStatements(boolean isRollBack) throws SQLException
- Throws:
SQLException
-
query
public <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler) throws SQLException
- Specified by:
queryin interfaceExecutor- Throws:
SQLException
-
query
public <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey key, BoundSql boundSql) throws SQLException
- Specified by:
queryin interfaceExecutor- Throws:
SQLException
-
queryCursor
public <E> Cursor<E> queryCursor(MappedStatement ms, Object parameter, RowBounds rowBounds) throws SQLException
- Specified by:
queryCursorin interfaceExecutor- Throws:
SQLException
-
deferLoad
public void deferLoad(MappedStatement ms, MetaObject resultObject, String property, CacheKey key, Class<?> targetType)
-
createCacheKey
public CacheKey createCacheKey(MappedStatement ms, Object parameterObject, RowBounds rowBounds, BoundSql boundSql)
- Specified by:
createCacheKeyin interfaceExecutor
-
isCached
public boolean isCached(MappedStatement ms, CacheKey key)
-
commit
public void commit(boolean required) throws SQLException- Specified by:
commitin interfaceExecutor- Throws:
SQLException
-
rollback
public void rollback(boolean required) throws SQLException- Specified by:
rollbackin interfaceExecutor- Throws:
SQLException
-
clearLocalCache
public void clearLocalCache()
- Specified by:
clearLocalCachein interfaceExecutor
-
doUpdate
protected abstract int doUpdate(MappedStatement ms, Object parameter) throws SQLException
- Throws:
SQLException
-
doFlushStatements
protected abstract List<BatchResult> doFlushStatements(boolean isRollback) throws SQLException
- Throws:
SQLException
-
doQuery
protected abstract <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException
- Throws:
SQLException
-
doQueryCursor
protected abstract <E> Cursor<E> doQueryCursor(MappedStatement ms, Object parameter, RowBounds rowBounds, BoundSql boundSql) throws SQLException
- Throws:
SQLException
-
closeStatement
protected void closeStatement(Statement statement)
-
applyTransactionTimeout
protected void applyTransactionTimeout(Statement statement) throws SQLException
Apply a transaction timeout.- Parameters:
statement- a current statement- Throws:
SQLException- if a database access error occurs, this method is called on a closedStatement- Since:
- 3.4.0
- See Also:
StatementUtil.applyTransactionTimeout(Statement, Integer, Integer)
-
getConnection
protected Connection getConnection(Log statementLog) throws SQLException
- Throws:
SQLException
-
setExecutorWrapper
public void setExecutorWrapper(Executor wrapper)
- Specified by:
setExecutorWrapperin interfaceExecutor
-
-