您的位置:首页 > 其它

Mybatis源码之RoutingStatementHandler

2016-01-07 20:12 211 查看
/**
* @author Clinton Begin
*/
public class RoutingStatementHandler implements StatementHandler {

private final StatementHandler delegate;

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());
}

}

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: