public class NMRStoredProcedure extends StoredProcedure{ public NMRStoredProcedure(DataSource dataSource, String spname) { super(dataSource, spname); // declareParameter(new SqlParameter("IP_ACRONYM", Types.VARCHAR));//deliver a parameter declareParameter(new SqlReturnResultSet("resultSet",new ClientMergeRowMapper())); compile(); } private class ClientMergeRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { NMRClientMerge clientMerge = new NMRClientMerge(); clientMerge.setAcronym(rs.getString(1)); clientMerge.setEntity(rs.getString(2)); clientMerge.setClientName(rs.getString(3)); return clientMerge; } } } DaoImpl.java public class DaoImpl implements IDAO { private Logger logger = Logger.getLogger(DaoImpl.class); private JdbcTemplate jdbcTemplate; public DaoImpl(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } public Map execute(Map map) { String procedureName = ResourceUtils.getResource(ResourceKey.ASDS_EXPORT_PROCEDURE_NAME); NMRStoredProcedure sp = new NMRStoredProcedure(this.jdbcTemplate.getDataSource(),procedureName); return sp.execute(map); } }