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
 
 - 
 
 -