List of usage examples for org.springframework.jdbc.core RowMapperResultSetExtractor RowMapperResultSetExtractor
public RowMapperResultSetExtractor(RowMapper<T> rowMapper, int rowsExpected)
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); }