Mybatis源码之Statement处理器RoutingStatementHandler(三)
2016-09-24 22:32
465 查看
RoutingStatementHandler类似路由器,在其构造函数中会根据Mapper文件中设置的StatementType来选择使用SimpleStatementHandler、PreparedStatementHandler和CallableStatementHandler,其实现的接口StatementHandler的方法也是由这三个具体实现类来实现。
源码如下:
源码如下:
/** * @author Clinton Begin */ //类似于路由器 public class RoutingStatementHandler implements StatementHandler { private final StatementHandler delegate; //选择三种Statement,SimpleStatementHandler、PreparedStatementHandler和CallableStatementHandler public RoutingStatementHandler(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { switch (ms.getStatementType()) { case STATEMENT: delegate = new SimpleStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql); break; case PREPARED: delegate = new PreparedStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql); break; case CALLABLE: delegate = new CallableStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql); break; default: throw new ExecutorException("Unknown statement type: " + ms.getStatementType()); } } //选中的Statement的操作 public Statement prepare(Connection connection) throws SQLException { return delegate.prepare(connection); } public void parameterize(Statement statement) throws SQLException { delegate.parameterize(statement); } public void batch(Statement statement) throws SQLException { delegate.batch(statement); } public int update(Statement statement) throws SQLException { return delegate.update(statement); } public <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException { return delegate.<E>query(statement, resultHandler); } public BoundSql getBoundSql() { return delegate.getBoundSql(); } public ParameterHandler getParameterHandler() { return delegate.getParameterHandler(); } }
相关文章推荐
- Mybatis源码之Statement处理器RoutingStatementHandler(三)
- Mybatis源码之Statement处理器RoutingStatementHandler(三)
- Mybatis源码之Statement处理器SimpleStatementHandler(四)
- Mybatis源码之Statement处理器SimpleStatementHandler(四)
- Mybatis源码之Statement处理器PreparedStatementHandler(五)
- Mybatis源码之Statement处理器PreparedStatementHandler(五)
- Mybatis源码之Statement处理器StatementHandler(一)
- Mybatis源码之Statement处理器PreparedStatementHandler(五)
- Mybatis源码之Statement处理器StatementHandler(一)
- Mybatis源码之Statement处理器StatementHandler(一)
- Mybatis源码之Statement处理器SimpleStatementHandler(四)
- MyBatis源码解析(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)
- mybatis源码之StatementHandler
- mybatis源码之StatementHandler
- Mybatis源码之Statement处理器CallableStatementHandler(六)
- mybatis源码之StatementHandler
- Mybatis源码之Statement处理器CallableStatementHandler(六)
- Mybatis源码之Statement处理器CallableStatementHandler(六)
- MyBatis源码解析(十)——Type类型模块之类型处理器TypeHandler
- Mybatis源码之Statement处理器BaseStatementHandler(二)