Example usage for org.springframework.jdbc.core.namedparam NamedParameterJdbcOperations queryForObject

List of usage examples for org.springframework.jdbc.core.namedparam NamedParameterJdbcOperations queryForObject

Introduction

In this page you can find the example usage for org.springframework.jdbc.core.namedparam NamedParameterJdbcOperations queryForObject.

Prototype

@Nullable
<T> T queryForObject(String sql, Map<String, ?> paramMap, Class<T> requiredType) throws DataAccessException;

Source Link

Document

Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result object.

Usage

From source file:io.kahu.hawaii.util.pagination.PaginationHelper.java

public Page<E> fetchPage(final NamedParameterJdbcOperations jt, final String sqlCountRows,
        final String sqlFetchRows, final Map<String, Object> paramMap, final Pageable pageable,
        final RowMapper<E> rowMapper) {

    // first execute select count (needed for paging metadata)
    final int rowCount = jt.queryForObject(sqlCountRows, paramMap, Integer.class);

    if (maxRows != null && (rowCount > maxRows)) {
        // Threshold defined and total number of records is higher
        return new PageImpl<E>(new ArrayList<>(), new PageRequest(0, 1), rowCount);
    }//  w  ww . ja  v  a2  s .c om
    // now fetch the actual objects (content)
    final List<E> pageItems = jt.query(sqlFetchRows, paramMap, (resultSet, rowNum) -> {
        return rowMapper.mapRow(resultSet, rowNum);
    });

    // return the page
    return new PageImpl<E>(pageItems, pageable, rowCount);
}

From source file:com.example.securelogin.selenium.loginform.SecureLoggingTest.java

private void isLogged(long start, long end, String username, String message) {
    NamedParameterJdbcOperations jdbcOperations = dbLogAssertOperations.getJdbcOperations();

    StringBuilder sql = new StringBuilder();
    StringBuilder where = new StringBuilder();
    sql.append("SELECT COUNT(e.*) FROM logging_event e");
    where.append(" WHERE e.formatted_message REGEXP :message");
    where.append(" AND e.timestmp BETWEEN :start AND :end");
    sql.append(" JOIN logging_event_property ep ON ep.event_id = e.event_id");
    if (username != null) {
        where.append(" AND ep.mapped_key = 'USER' AND ep.mapped_value = :username");
    }//from  w ww  . j ava  2s .com
    sql.append(where);

    MapSqlParameterSource params = new MapSqlParameterSource();
    params.addValue("start", start);
    params.addValue("end", end);
    params.addValue("username", username);
    params.addValue("message", message);
    Long count = jdbcOperations.queryForObject(sql.toString(), params, Long.class);
    assertThat(count, is(not(0L)));
}