Mybatis执行Executor(一)
2016-09-23 21:47
411 查看
在DefaultSqlSession中我们可以看到一系列的增删改查操作的其实都是在调用Executor的接口,Mybatis对外统一提供了一个操作接口类Executor,提供的接口方法有update、query、flushStatements、commit、rollback等接口函数,源码如下:
Executor接口只是简单 的定义了一些基本的操作接口,具体实现类有抽象类BaseExecutor、实现类CachingExecutor、实现类BatchExecutor、实现类ReuseExecutor和实现类SimpleExecutor,这些实现类的具体操作我们在接下来的博客中会一步一步进行分析,如下图所示:
/** * @author Clinton Begin */ public interface Executor { ResultHandler NO_RESULT_HANDLER = null; /* 更新操作**/ int update(MappedStatement ms, Object parameter) throws SQLException; /* 查询操作*/ <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, CacheKey cacheKey, BoundSql boundSql) throws SQLException; <E> List<E> query(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler) throws SQLException; /* 更新statement操作*/ List<BatchResult> flushStatements() throws SQLException; /*提交操作*/ void commit(boolean required) throws SQLException; /*事务回滚操作*/ void rollback(boolean required) throws SQLException; /*缓存key操作*/ CacheKey createCacheKey(MappedStatement ms, Object parameterObject, RowBounds rowBounds, BoundSql boundSql); /*是否开启缓存*/ boolean isCached(MappedStatement ms, CacheKey key); /*清除本地缓存操作*/ void clearLocalCache(); /*推迟加载操作*/ void deferLoad(MappedStatement ms, MetaObject resultObject, String property, CacheKey key, Class<?> targetType); /*获取事务*/ Transaction getTransaction(); /*关闭连接*/ void close(boolean forceRollback); boolean isClosed(); void setExecutorWrapper(Executor executor); }
Executor接口只是简单 的定义了一些基本的操作接口,具体实现类有抽象类BaseExecutor、实现类CachingExecutor、实现类BatchExecutor、实现类ReuseExecutor和实现类SimpleExecutor,这些实现类的具体操作我们在接下来的博客中会一步一步进行分析,如下图所示:
相关文章推荐
- Mybatis执行ReuseExecutor(五)
- Mybatis执行ReuseExecutor(五)
- Mybatis执行ReuseExecutor(五)
- Mybatis执行Executor(一)
- Mybatis执行Executor(一)
- Mybatis执行BaseExecutor(二)
- Mybatis执行BaseExecutor(二)
- Mybatis执行BaseExecutor(二)
- Mybatis执行SimpleExecutor(三)
- Mybatis执行SimpleExecutor(三)
- Mybatis执行SimpleExecutor(三)
- mybatis直接执行前台传递的sql语句(mapper参数即为sql字符串)
- 【解决】Spark On Yarn执行中executor内存限制问题
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- mybatis获取主键值-执行insert或update操作时
- Mybatis在编译器中打印sql语句及执行后的结果
- Strom Topology执行分析:worker数,Bolt实例数,executor数,task数
- Mybatis插件使用-统计sql执行时间
- mybatis执行动态sql语句
- mybatis功能架构及执行流程