Given a JdbcTemplate you can use executeQuery(CallableStatementCreator csc, CallableStatementCallback action). Either as a utility method or a method on a JdbcTemplate subclass. The follow is an example of a utility method.
Code:
public List SimpleProc(JdbcTemplate jdbcTemplate, CallableStatementCreator csc, final RowMapper rm)
{
return (List)jdbcTemplate.executeQuery(csc, new CallableStatementCallback() {
public Object doInCallableStatement(CallableStatement cs) throws SQLException {
ResultSet rs = cs.executeQuery();
int rowNum = 0;
List result = new ArrayList();
while (rs.next()) {
rowNum++;
result.add(rm.mapRow(rs, rowNum));
}
return result;
}
});
}