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 Configuration
configuration
protected ConcurrentLinkedQueue<org.apache.ibatis.executor.BaseExecutor.DeferredLoad>
deferredLoads
protected PerpetualCache
localCache
protected PerpetualCache
localOutputParameterCache
protected int
queryStack
protected Transaction
transaction
protected Executor
wrapper
Fields inherited from interface org.apache.ibatis.executor.Executor
NO_RESULT_HANDLER
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseExecutor(Configuration configuration, Transaction transaction)
-
Method Summary
Modifier and Type Method Description protected void
applyTransactionTimeout(Statement statement)
Apply a transaction timeout.void
clearLocalCache()
void
close(boolean forceRollback)
protected void
closeStatement(Statement statement)
void
commit(boolean required)
CacheKey
createCacheKey(MappedStatement ms, Object parameterObject, RowBounds rowBounds, BoundSql boundSql)
void
deferLoad(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 int
doUpdate(MappedStatement ms, Object parameter)
List<BatchResult>
flushStatements()
List<BatchResult>
flushStatements(boolean isRollBack)
protected Connection
getConnection(Log statementLog)
Transaction
getTransaction()
boolean
isCached(MappedStatement ms, CacheKey key)
boolean
isClosed()
<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)
void
rollback(boolean required)
void
setExecutorWrapper(Executor wrapper)
int
update(MappedStatement ms, Object parameter)
-
Field Details
-
transaction
-
wrapper
-
deferredLoads
-
localCache
-
localOutputParameterCache
-
configuration
-
queryStack
protected int queryStack
-
-
Constructor Details
-
BaseExecutor
-
-
Method Details
-
getTransaction
- Specified by:
getTransaction
in interfaceExecutor
-
close
public void close(boolean forceRollback) -
isClosed
public boolean isClosed() -
update
- Specified by:
update
in interfaceExecutor
- Throws:
SQLException
-
flushStatements
- Specified by:
flushStatements
in interfaceExecutor
- Throws:
SQLException
-
flushStatements
- Throws:
SQLException
-
query
public <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler) throws SQLException- Specified by:
query
in 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:
query
in interfaceExecutor
- Throws:
SQLException
-
queryCursor
public <E> Cursor<E> queryCursor(MappedStatement ms, Object parameter, RowBounds rowBounds) throws SQLException- Specified by:
queryCursor
in 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:
createCacheKey
in interfaceExecutor
-
isCached
-
commit
- Specified by:
commit
in interfaceExecutor
- Throws:
SQLException
-
rollback
- Specified by:
rollback
in interfaceExecutor
- Throws:
SQLException
-
clearLocalCache
public void clearLocalCache()- Specified by:
clearLocalCache
in interfaceExecutor
-
doUpdate
- Throws:
SQLException
-
doFlushStatements
- 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
-
applyTransactionTimeout
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
- Throws:
SQLException
-
setExecutorWrapper
- Specified by:
setExecutorWrapper
in interfaceExecutor
-