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
All Methods Instance Methods Abstract Methods Concrete Methods 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 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:
getTransaction
in interfaceExecutor
-
update
public int update(MappedStatement ms, Object parameter) throws SQLException
- Specified by:
update
in interfaceExecutor
- Throws:
SQLException
-
flushStatements
public List<BatchResult> flushStatements() throws SQLException
- Specified by:
flushStatements
in 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:
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
public boolean isCached(MappedStatement ms, CacheKey key)
-
commit
public void commit(boolean required) throws SQLException
- Specified by:
commit
in interfaceExecutor
- Throws:
SQLException
-
rollback
public void rollback(boolean required) throws SQLException
- Specified by:
rollback
in interfaceExecutor
- Throws:
SQLException
-
clearLocalCache
public void clearLocalCache()
- Specified by:
clearLocalCache
in 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:
setExecutorWrapper
in interfaceExecutor
-
-