private CallCreator createCallForRead(final String procedureName, final RowMapper<?> mapper, final MapSqlParameterSource parameterSource) { return () -> { SimpleJdbcCall call = (SimpleJdbcCall) dialect.createJdbcCallForQuery(jdbcTemplate).withProcedureName(procedureName); call.returningResultSet(RETURN_VALUE_PARAMETER, mapper); // Pass mapper information (only parameter names) in order to supply all the needed // metadata information for compilation. call.getInParameterNames().addAll( SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource).keySet()); return call; }; }
@Override public Integer getSystemStatisticsValue(String entity, String status) { MapSqlParameterSource parameterSource = new CustomMapSqlParameterSource(dbEngineDialect) .addValue("entity", entity) .addValue("status", status); RowMapper<Integer> mapper = (rs, rowNum) -> rs.getInt("val"); Map<String, Object> dbResults = dbEngineDialect .createJdbcCallForQuery(jdbcTemplate) .withProcedureName("Getsystem_statistics") .returningResultSet("RETURN_VALUE", mapper) .execute(parameterSource); return (Integer) DbFacadeUtils.asSingleResult((List<?>) dbResults.get("RETURN_VALUE")); } }