Example usage for org.springframework.jdbc.core RowMapperResultSetExtractor RowMapperResultSetExtractor

List of usage examples for org.springframework.jdbc.core RowMapperResultSetExtractor RowMapperResultSetExtractor

Introduction

In this page you can find the example usage for org.springframework.jdbc.core RowMapperResultSetExtractor RowMapperResultSetExtractor.

Prototype

public RowMapperResultSetExtractor(RowMapper<T> rowMapper, int rowsExpected) 

Source Link

Document

Create a new RowMapperResultSetExtractor.

Usage

From source file:net.paoding.rose.jade.provider.jdbctemplate.PreparedStatementCallbackReturnId.java

@Override
public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {

    if (setter != null) {
        setter.setValues(ps);/*from  w  w w. j ava 2  s  .  com*/
    }

    ps.executeUpdate();

    ResultSet keys = ps.getGeneratedKeys();
    if (keys != null) {

        try {
            RowMapperResultSetExtractor extractor = new RowMapperResultSetExtractor(
                    new SingleColumnRowMapper(Number.class), 1);
            return DataAccessUtils.requiredSingleResult((List<?>) extractor.extractData(keys));
        } finally {
            JdbcUtils.closeResultSet(keys);
        }
    }

    return null;
}

From source file:io.github.huherto.springyRecords.BaseTable.java

/**
 * @return null if the object is not found.
 */// w  w  w.  ja  v  a  2  s  .  c o m
protected R queryForObjectOrNull(String sql, Object... args) {
    List<R> results = query(sql, args, new RowMapperResultSetExtractor<R>(rowMapper(), 1));
    return DataAccessUtils.singleResult(results);
}

From source file:net.noday.core.security.SecurityDao.java

private User safeQueryForObject(String sql, RowMapper<User> rowMapper, Object... args) {
    List<User> results = jdbcTemplate.query(sql, args, new RowMapperResultSetExtractor<User>(rowMapper, 1));
    int size = (results != null ? results.size() : 0);
    if (results.size() > 1) {
        throw new IncorrectResultSizeDataAccessException(1, size);
    }/*from   ww w .  j  av  a  2 s.c  om*/
    return results.iterator().next();
}

From source file:net.noday.d4c.dao.DomainDao.java

protected Domain safeQueryForObject(String sql, RowMapper<Domain> rowMapper, Object... args) {
    List<Domain> results = jdbc.query(sql, args, new RowMapperResultSetExtractor<Domain>(rowMapper, 1));
    int size = (results != null ? results.size() : 0);
    if (results.size() > 1) {
        throw new IncorrectResultSizeDataAccessException(1, size);
    }/*from   w  ww.j  ava 2  s  .c  o m*/
    return results.iterator().next();
}

From source file:net.noday.d4c.dao.SubdomainDao.java

protected Subdomain safeQueryForObject(String sql, RowMapper<Subdomain> rowMapper, Object... args) {
    List<Subdomain> results = jdbc.query(sql, args, new RowMapperResultSetExtractor<Subdomain>(rowMapper, 1));
    int size = (results != null ? results.size() : 0);
    if (results.size() > 1) {
        throw new IncorrectResultSizeDataAccessException(1, size);
    }/*ww  w .  ja  v a 2  s  .  com*/
    return results.iterator().next();
}

From source file:com.nortal.petit.orm.statement.InsertStatement.java

@Override
public void exec() {
    prepare();/*from   w w  w  . jav a 2s .  c  om*/
    if (!CollectionUtils.isEmpty(getBeans())) {
        if (getMapping().id() == null) {
            execBatchUpdate();
        } else {
            final KeyHolder keyHolder = new GeneratedKeyHolder();
            final InterceptorCalls interceptorCalls = new InterceptorCalls();
            getJdbcTemplate().execute(new PreparedStatementCreator() {
                @Override
                public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                    return con.prepareStatement(getSql(), Statement.RETURN_GENERATED_KEYS);
                }
            }, new PreparedStatementCallback<Object>() {
                @Override
                public Object doInPreparedStatement(PreparedStatement ps)
                        throws SQLException, DataAccessException {
                    MappingParamFunction<B> paramFunction = new MappingParamFunction<B>(getMapping());

                    for (B bean : getBeans()) {
                        paramFunction.setBean(bean);
                        Object[] params = getParams(paramFunction);
                        Object[] queryParams = params.length == 1 && params[0] instanceof Object[]
                                ? (Object[]) params[0]
                                : params;
                        interceptorCalls.setBeanValues(bean, queryParams);
                        ArgPreparedStatementSetter.setValues(ps, queryParams, 1);

                        ps.executeUpdate();
                        extractKeys(ps);
                    }
                    return null;
                }

                /**
                 * @param ps
                 * @throws SQLException
                 */
                private void extractKeys(PreparedStatement ps) throws SQLException {
                    ResultSet keys = ps.getGeneratedKeys();
                    if (keys != null) {
                        try {
                            RowMapperResultSetExtractor<Map<String, Object>> rse = new RowMapperResultSetExtractor<Map<String, Object>>(
                                    new ColumnMapRowMapper(), 1);
                            keyHolder.getKeyList().addAll(rse.extractData(keys));
                        } finally {
                            JdbcUtils.closeResultSet(keys);
                        }
                    }
                }
            });

            try {
                Property<B, Object> idProperty = getMapping().id();
                for (int i = 0; i < getBeans().size(); i++) {
                    B bean = getBeans().get(i);
                    Object key = keyHolder.getKeyList().get(i).get(idProperty.column());
                    idProperty.write(bean, key);
                    interceptorCalls.setBeanId(bean, key);
                }
            } catch (Exception e) {
                throw new PersistenceException("InsertStatement.exec: unable to write bean primary key", e);
            }
            interceptorCalls.callInterceptor();
        }
    } else {
        getJdbcTemplate().update(getSql(), getParams(null));
    }
}

From source file:org.zenoss.zep.dao.impl.EventSummaryDaoImpl.java

private String saveEventByFingerprint(final byte[] fingerprintHash, final Collection<Event> events,
        final EventPreCreateContext context, final boolean createClearHash) throws ZepException {
    try {/* ww  w .j  a  v a  2 s .  co  m*/
        return metricRegistry.timer(getClass().getName() + ".saveEventByFingerprint")
                .time(new Callable<String>() {
                    @Override
                    public String call() throws Exception {
                        final List<EventSummary.Builder> oldSummaryList = template.getJdbcOperations().query(
                                "SELECT event_count,first_seen,last_seen,details_json,status_id,status_change,uuid"
                                        + " FROM event_summary WHERE fingerprint_hash=? FOR UPDATE",
                                new RowMapperResultSetExtractor<EventSummary.Builder>(eventDedupMapper, 1),
                                fingerprintHash);
                        final EventSummary.Builder summary;
                        if (!oldSummaryList.isEmpty()) {
                            summary = oldSummaryList.get(0);
                        } else {
                            summary = EventSummary.newBuilder();
                            summary.setCount(0);
                            summary.addOccurrenceBuilder(0);
                        }

                        boolean isNewer = false;
                        for (Event event : events) {
                            isNewer = merge(summary, event) || isNewer;
                        }

                        if (!events.isEmpty()) {
                            summary.setUpdateTime(System.currentTimeMillis());
                            final long dedupCount;
                            if (!oldSummaryList.isEmpty()) {
                                dedupCount = events.size();
                                final Map<String, Object> fields = getUpdateFields(summary, isNewer, context,
                                        createClearHash);
                                final StringBuilder updateSql = new StringBuilder("UPDATE event_summary SET ");
                                int i = 0;
                                for (String fieldName : fields.keySet()) {
                                    if (++i > 1)
                                        updateSql.append(',');
                                    updateSql.append(fieldName).append("=:").append(fieldName);
                                }
                                updateSql.append(" WHERE fingerprint_hash=:fingerprint_hash");
                                fields.put("fingerprint_hash", fingerprintHash);
                                template.update(updateSql.toString(), fields);
                                final String indexSql = "INSERT INTO event_summary_index_queue (uuid, update_time) SELECT uuid, "
                                        + String.valueOf(System.currentTimeMillis())
                                        + " FROM event_summary WHERE fingerprint_hash=:fingerprint_hash";
                                template.update(indexSql, fields);
                            } else {
                                dedupCount = events.size() - 1;
                                summary.setUuid(uuidGenerator.generate().toString());
                                final Map<String, Object> fields = getInsertFields(summary, context,
                                        createClearHash);
                                fields.put(COLUMN_FINGERPRINT_HASH, fingerprintHash);
                                insert.execute(fields);
                                indexSignal(summary.getUuid(), System.currentTimeMillis());
                            }
                            if (dedupCount > 0) {
                                TransactionSynchronizationManager
                                        .registerSynchronization(new TransactionSynchronizationAdapter() {
                                            @Override
                                            public void afterCommit() {
                                                counters.addToDedupedEventCount(dedupCount);
                                            }
                                        });
                            }
                        }
                        return summary.getUuid();
                    }
                });
    } catch (ZepException e) {
        throw e;
    } catch (Exception e) {
        throw new ZepException(e);
    }
}

From source file:architecture.common.spring.jdbc.core.ExtendedJdbcTemplate.java

public <T> T queryForObject(String sql, List<ParameterMapping> parameterMappings,
        Map<String, Object> parameters, RowMapper<T> rowMapper) throws DataAccessException {
    List<T> results = query(sql, newMappedPreparedStatementSetter(parameters, parameterMappings),
            new RowMapperResultSetExtractor<T>(rowMapper, 1));
    return DataAccessUtils.requiredSingleResult(results);
}

From source file:cc.tooyoung.common.db.JdbcTemplate.java

@SuppressWarnings("unchecked")
public Object queryForObject(String sql, Object[] args, int[] argTypes, RowMapper rowMapper)
        throws DataAccessException {

    List results = (List) query(sql, args, argTypes, new RowMapperResultSetExtractor(rowMapper, 1));
    return DataAccessUtils.requiredSingleResult(results);
}

From source file:cc.tooyoung.common.db.JdbcTemplate.java

@SuppressWarnings("unchecked")
public Object queryForObject(String sql, Object[] args, RowMapper rowMapper) throws DataAccessException {
    List results = (List) query(sql, args, new RowMapperResultSetExtractor(rowMapper, 1));
    return DataAccessUtils.requiredSingleResult(results);
}