@Override public Map<String, Object> queryForMap(String sql, Map<String, ?> paramMap) throws DataAccessException { Map<String, Object> result = queryForObject(sql, paramMap, new ColumnMapRowMapper()); Assert.state(result != null, "No result map"); return result; }
@Override @Nullable public <T> T queryForObject(String sql, Map<String, ?> paramMap, RowMapper<T>rowMapper) throws DataAccessException { return queryForObject(sql, new MapSqlParameterSource(paramMap), rowMapper); }
@Override @Nullable public <T> T queryForObject(String sql, SqlParameterSource paramSource, Class<T> requiredType) throws DataAccessException { return queryForObject(sql, paramSource, new SingleColumnRowMapper<>(requiredType)); }
@Override public Map<String, Object> queryForMap(String sql, SqlParameterSource paramSource) throws DataAccessException { Map<String, Object> result = queryForObject(sql, paramSource, new ColumnMapRowMapper()); Assert.state(result != null, "No result map"); return result; }
@Override @Nullable public <T> T queryForObject(String sql, Map<String, ?> paramMap, Class<T> requiredType) throws DataAccessException { return queryForObject(sql, paramMap, new SingleColumnRowMapper<>(requiredType)); }
public JdbcPagingList(NamedParameterJdbcTemplate jdbcTemplate, LimitSqlAdapter limitSqlAdapter, String sql, Map<String, ?> args, RowMapper<E> mapper, int pageSize) { this.parameterJdbcTemplate = jdbcTemplate; this.sql = sql; this.args = args; this.mapper = mapper; this.size = parameterJdbcTemplate.queryForObject(getCountSql(sql), args, Integer.class); this.pageSize = pageSize; this.limitSqlAdapter = limitSqlAdapter; }
@Test public void testQueryForObjectWithMapAndInteger() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); Map<String, Object> params = new HashMap<>(); params.put("id", 3); Object o = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Integer.class); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForIntWithParamMap() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("id", 3); int i = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Integer.class).intValue(); assertEquals("Return of an int", 22, i); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForLongWithParamBeanWithCollection() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getLong(1)).willReturn(87L); BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(new ParameterCollectionBean(3, 5)); long l = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID IN (:ids)", params, Long.class).longValue(); assertEquals("Return of a long", 87, l); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID IN (?, ?)"); verify(preparedStatement).setObject(1, 3); verify(preparedStatement).setObject(2, 5); }
@Test public void testQueryForLongWithParamBean() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getLong(1)).willReturn(87L); BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(new ParameterBean(3)); long l = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Long.class).longValue(); assertEquals("Return of a long", 87, l); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3, Types.INTEGER); }
@Test public void testQueryForObjectWithParamMapAndListOfExpressionLists() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); List<Object[]> l1 = new ArrayList<>(); l1.add(new Object[] {3, "Rod"}); l1.add(new Object[] {4, "Juergen"}); params.addValue("multiExpressionList", l1); Object o = template.queryForObject( "SELECT AGE FROM CUSTMR WHERE (ID, NAME) IN (:multiExpressionList)", params, Integer.class); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement( "SELECT AGE FROM CUSTMR WHERE (ID, NAME) IN ((?, ?), (?, ?))"); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForObjectWithParamMapAndList() throws Exception { String sql = "SELECT AGE FROM CUSTMR WHERE ID IN (:ids)"; String sqlToUse = "SELECT AGE FROM CUSTMR WHERE ID IN (?, ?)"; given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("ids", Arrays.asList(3, 4)); Object o = template.queryForObject(sql, params, Integer.class); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement(sqlToUse); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForObjectWithParamMapAndInteger() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("id", 3); Object o = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Integer.class); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForObjectWithRowMapper() throws SQLException { given(resultSet.next()).willReturn(true, false); given(resultSet.getInt("id")).willReturn(1); given(resultSet.getString("forename")).willReturn("rod"); params.put("id", new SqlParameterValue(Types.DECIMAL, 1)); params.put("country", "UK"); Customer cust = namedParameterTemplate.queryForObject(SELECT_NAMED_PARAMETERS, params, (rs, rownum) -> { Customer cust1 = new Customer(); cust1.setId(rs.getInt(COLUMN_NAMES[0])); cust1.setForename(rs.getString(COLUMN_NAMES[1])); return cust1; }); assertTrue("Customer id was assigned correctly", cust.getId() == 1); assertTrue("Customer forename was assigned correctly", cust.getForename().equals("rod")); verify(connection).prepareStatement(SELECT_NAMED_PARAMETERS_PARSED); verify(preparedStatement).setObject(1, 1, Types.DECIMAL); verify(preparedStatement).setString(2, "UK"); verify(preparedStatement).close(); verify(connection).close(); }
@Test public void testQueryForObjectWithParamMapAndRowMapper() throws Exception { given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("id", 3); Object o = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, new RowMapper<Object>() { @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getInt(1); } }); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
@Deprecated public long queryForLong(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Long.class); return (number != null ? number.longValue() : 0); }
private long fetchTotalSize(MessageSentLogQuery query){ MapSqlParameterSource params = new MapSqlParameterSource(); String sql = "select COUNT(*) FROM " + TABLE_NAME; sql += appendWhere(query, params); return jdbcTemplate.queryForObject(sql, params, Long.class); }
@Override public long getTaskExecutionCountByTaskName(String taskName) { final MapSqlParameterSource queryParameters = new MapSqlParameterSource() .addValue("taskName", taskName, Types.VARCHAR); try { return jdbcTemplate.queryForObject( getQuery(TASK_EXECUTION_COUNT_BY_NAME), queryParameters, Long.class); } catch (EmptyResultDataAccessException e) { return 0; } }
@Override public PromotionRun getPromotionRun(ID promotionRunId) { return getNamedParameterJdbcTemplate().queryForObject( "SELECT * FROM PROMOTION_RUNS WHERE ID = :id", params("id", promotionRunId.getValue()), (rs, rowNum) -> toPromotionRun( rs, this::getBuild, this::getPromotionLevel ) ); }
@Override public Build getBuild(ID buildId) { try { return getNamedParameterJdbcTemplate().queryForObject( "SELECT * FROM BUILDS WHERE ID = :id", params("id", buildId.getValue()), (rs, rowNum) -> toBuild(rs, this::getBranch) ); } catch (EmptyResultDataAccessException ex) { throw new BuildNotFoundException(buildId); } }