synchronized (method) {
statement = statements.get(method);
if (statement == null) {
StatementMetaData smd = new StatementMetaData(daoMetaData, method);
SQLType sqlType = smd.getSQLType();
Querier querier;
if (sqlType == SQLType.READ) {
RowMapper<?> rowMapper = rowMapperFactory.getRowMapper(smd);
querier = new SelectQuerier(dataAccessFactory, smd, rowMapper);
} else {
querier = new UpdateQuerier(dataAccessFactory, smd);