我要执行SELECT操作。当我在Google上搜索时,我得到了 MappingSqlQuery 和 RowMapper 示例。我感到困惑的是执行SELECT操作的最佳性能是哪一个?
答案 0 :(得分:1)
MappingSqlQuery
实际上将在幕后创建一个RowMapper
,并使用JdbcTemplate
到query the result:
public List<T> execute(@Nullable Object[] params, @Nullable Map<?, ?> context) throws DataAccessException {
validateParameters(params);
RowMapper<T> rowMapper = newRowMapper(params, context);
return getJdbcTemplate().query(newPreparedStatementCreator(params), rowMapper);
}
因此,从性能的角度来看,将RowMapper
与JDBCTemplate
一起直接使用应该比MappingSqlQuery
快一点。但是您不会感觉到差异是微观性能差异。
使用哪种取决于您的喜好。对于MappingSqlQuery,您必须为每个查询创建一个新类。对于带有RowMapper
的{{1}},您只需要为执行类似操作的一组查询创建单个类。对于具有大量查询的系统,我会选择后一个,因为我不想创建太多的JdbcTemplate
类。