Querier querier;
if (sqlType == SQLType.READ) {
RowMapper<?> rowMapper = rowMapperFactory.getRowMapper(smd);
querier = new SelectQuerier(dataAccessFactory, smd, rowMapper);
} else {
querier = new UpdateQuerier(dataAccessFactory, smd);
}
Interpreter[] interpreters = interpreterFactory.getInterpreters(smd);
statement = new JdbcStatement(smd, sqlType, interpreters, querier);
if (cacheProvider != null) {
statement = new CachedStatement(cacheProvider, statement);