List of usage examples for org.springframework.jdbc.core PreparedStatementCreatorFactory PreparedStatementCreatorFactory
public PreparedStatementCreatorFactory(String sql, List<SqlParameter> declaredParameters)
From source file:org.gridobservatory.greencomputing.dao.TimeseriesDao.java
public BigInteger insert(T timeseriesType) { KeyHolder keyHolder = new GeneratedKeyHolder(); PreparedStatementCreatorFactory preparedStatementCreatorFactory = new PreparedStatementCreatorFactory( "insert into time_series (constant_value,start_date,end_date,acquisition_count ) " + "values (?, ?, ?, ?)", new int[] { Types.VARCHAR, Types.TIMESTAMP, Types.TIMESTAMP, Types.BIGINT }); PreparedStatementCreator newPreparedStatementCreator = preparedStatementCreatorFactory .newPreparedStatementCreator(new Object[] { timeseriesType.getConstantValue() != null ? timeseriesType.getConstantValue().getValue() : "", new Date(timeseriesType.getStartDate().longValue() * 1000), new Date(timeseriesType.getEndDate().longValue() * 1000), timeseriesType.getAcquisitionCount() }); preparedStatementCreatorFactory.setReturnGeneratedKeys(true); this.getJdbcTemplate().update(newPreparedStatementCreator, keyHolder); BigInteger timeSeriesId = BigInteger.valueOf(keyHolder.getKey().longValue()); insertTimeSeriesAcquisitions(timeSeriesId, timeseriesType.getA()); return timeSeriesId; }
From source file:org.sakaiproject.imagegallery.service.impl.ImageGalleryServiceImpl.java
public void init() { super.init(); insertImage = new PreparedStatementCreatorFactory( "insert into IMAGE_GALLERY_IMAGE_T (CONTEXT, TITLE, DESCRIPTION, FILE_ID) values (?, ?, ?, ?)", new int[] { Types.VARCHAR, Types.VARCHAR, Types.LONGVARCHAR, Types.VARCHAR }); }
From source file:com.springsource.greenhouse.events.load.JdbcEventLoaderRepository.java
@Transactional public long loadEvent(EventData eventData, VenueData venueData) { try {/* w w w.ja va 2 s . co m*/ // update if it already exists int eventId = jdbcTemplate.queryForInt(SELECT_EXTERNAL_EVENT, eventData.getSourceId(), eventData.getSource()); // TODO: Fetch date for comparison check jdbcTemplate.update(UPDATE_EVENT, eventData.getName(), eventData.getDescription(), eventData.getTimeZone(), eventData.getFirstDay(), eventData.getLastDay(), eventData.getAbbreviation(), eventId); logger.info("Updated event (ID = " + eventId + ")"); int venueId = jdbcTemplate.queryForInt(SELECT_EVENT_VENUE, eventId); jdbcTemplate.update(UPDATE_VENUE, venueData.getName(), venueData.getPostalAddress(), venueData.getLatitude(), venueData.getLongitude(), venueData.getLocationHint(), 1, venueId); logger.info("Updated venue (ID = " + venueId + ")"); return eventId; } catch (IncorrectResultSizeDataAccessException e) { // insert if it doesn't exist KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update( new PreparedStatementCreatorFactory(INSERT_EVENT, new int[] { VARCHAR, VARCHAR, VARCHAR, TIMESTAMP, TIMESTAMP, VARCHAR, BIGINT }) .newPreparedStatementCreator(new Object[] { eventData.getName(), eventData.getDescription(), eventData.getTimeZone(), eventData.getFirstDay(), eventData.getLastDay(), eventData.getAbbreviation(), eventData.getMemberGroupId() }), keyHolder); Number eventId = keyHolder.getKey(); logger.info("Created event (ID = " + eventId + ")"); jdbcTemplate.update(new PreparedStatementCreatorFactory(INSERT_VENUE, new int[] { VARCHAR, VARCHAR, DOUBLE, DOUBLE, VARCHAR, BIGINT }) .newPreparedStatementCreator(new Object[] { venueData.getName(), venueData.getPostalAddress(), venueData.getLatitude(), venueData.getLongitude(), venueData.getLocationHint(), 1 }), keyHolder); Number venueId = keyHolder.getKey(); logger.info("Created vanue (ID = " + venueId + ")"); jdbcTemplate.update(INSERT_EVENT_VENUE, eventId, venueId); jdbcTemplate.update(INSERT_EXTERNAL_EVENT, eventId, eventData.getSourceId(), eventData.getSource(), new Date()); return eventId.longValue(); } }
From source file:com.springsource.greenhouse.events.load.JdbcEventLoaderRepository.java
@Transactional public long loadLeader(LeaderData leaderData) { try {//ww w. j av a 2s . co m // update if it already exists int leaderId = jdbcTemplate.queryForInt(SELECT_EXTERNAL_LEADER, leaderData.getSourceId(), leaderData.getSource()); jdbcTemplate.update(UPDATE_LEADER, leaderData.getName(), leaderData.getBio(), leaderData.getPersonalUrl(), leaderData.getTwitterId(), leaderId); logger.info("Updated leader (ID = " + leaderId + ")"); return leaderId; } catch (IncorrectResultSizeDataAccessException e) { // insert if it doesn't exist KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreatorFactory(INSERT_LEADER, new int[] { VARCHAR, VARCHAR, VARCHAR, VARCHAR }) .newPreparedStatementCreator(new Object[] { leaderData.getName(), leaderData.getBio(), leaderData.getPersonalUrl(), leaderData.getTwitterId() }), keyHolder); long leaderId = keyHolder.getKey().longValue(); jdbcTemplate.update(INSERT_EXTERNAL_LEADER, leaderId, leaderData.getSourceId(), leaderData.getSource(), new Date()); logger.info("Created leader (ID = " + leaderId + ")"); return leaderId; } }
From source file:io.kahu.hawaii.util.call.sql.AbortableQuery.java
/** * Build a PreparedStatementCreator based on the given SQL and named parameters. * <p>Note: Not used for the {@code update} variant with generated key handling. * @param sql SQL to execute/*from w w w . ja va2s . c o m*/ * @param paramSource container of arguments to bind * @return the corresponding PreparedStatementCreator */ protected PreparedStatementCreator getPreparedStatementCreator(String sql, SqlParameterSource paramSource) { ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql); String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql, paramSource); Object[] params = NamedParameterUtils.buildValueArray(parsedSql, paramSource, null); List<SqlParameter> declaredParameters = NamedParameterUtils.buildSqlParameterList(parsedSql, paramSource); PreparedStatementCreatorFactory pscf = new PreparedStatementCreatorFactory(sqlToUse, declaredParameters); pscf.setGeneratedKeysColumnNames(idColumn); return pscf.newPreparedStatementCreator(params); }
From source file:com.springsource.greenhouse.events.load.JdbcEventLoaderRepository.java
@Transactional public long loadTimeSlot(TimeSlotData timeSlotData) { try {//from w ww . ja va 2 s . com // update if it already exists int timeSlotId = jdbcTemplate.queryForInt(SELECT_EXTERNAL_TIMESLOT, timeSlotData.getSourceId(), timeSlotData.getSource()); jdbcTemplate.update(UPDATE_TIMESLOT, timeSlotData.getEventId(), timeSlotData.getLabel(), timeSlotData.getStartTime(), timeSlotData.getEndTime(), timeSlotId); logger.info("Updated timeslot (ID = " + timeSlotId + ")"); return timeSlotId; } catch (IncorrectResultSizeDataAccessException e) { // insert if it doesn't exist KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreatorFactory(INSERT_TIMESLOT, new int[] { BIGINT, VARCHAR, TIMESTAMP, TIMESTAMP }).newPreparedStatementCreator( new Object[] { timeSlotData.getEventId(), timeSlotData.getLabel(), timeSlotData.getStartTime(), timeSlotData.getEndTime() }), keyHolder); long timeSlotId = keyHolder.getKey().longValue(); jdbcTemplate.update(INSERT_EXTERNAL_TIMESLOT, timeSlotId, timeSlotData.getSourceId(), timeSlotData.getSource(), new Date()); logger.info("Created timeslot (ID = " + timeSlotId + ")"); return timeSlotId; } }
From source file:com.danidemi.jlubricant.springbatch.NamedJdbcCursorItemReader.java
@Override protected void openCursor(Connection con) { //MyParsedSqlDel parsedSql = getParsedSql(sql); //String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql.getDelegate(), paramSource); //String theSql = sqlToUse; try {/* w w w . ja va 2 s . co m*/ // if (isUseSharedExtendedConnection()) { // preparedStatement = con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, // ResultSet.HOLD_CURSORS_OVER_COMMIT); // } // else { // preparedStatement = con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); // } // applyStatementSettings(preparedStatement); // if (this.preparedStatementSetter != null) { // // // preparedStatementSetter.setValues(preparedStatement); // // // // // // } // this.rs = preparedStatement.executeQuery(); ParsedSql parsedSql1 = this.getParsedSql(sql).getDelegate(); String sqlToUse1 = NamedParameterUtils.substituteNamedParameters(parsedSql1, paramSource); Object[] params = NamedParameterUtils.buildValueArray(parsedSql1, paramSource, null); List<SqlParameter> declaredParameters = NamedParameterUtils.buildSqlParameterList(parsedSql1, paramSource); PreparedStatementCreatorFactory pscf = new PreparedStatementCreatorFactory(sqlToUse1, declaredParameters); pscf.setResultSetType(ResultSet.TYPE_FORWARD_ONLY); pscf.setUpdatableResults(false); PreparedStatementCreator preparedStatementCreator = pscf.newPreparedStatementCreator(params); //con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); preparedStatement = preparedStatementCreator.createPreparedStatement(con); this.rs = preparedStatement.executeQuery(); handleWarnings(preparedStatement); } catch (SQLException se) { close(); throw getExceptionTranslator().translate("Executing query", getSql(), se); } }
From source file:anyframe.core.query.impl.jdbc.PagingJdbcTemplate.java
/** * Generic method to execute the update given arguments. All other update() * methods invoke this method.//from w w w .j a v a2 s . com * * @return the number of rows affected by the update */ // 2008.05.08 - add for Handling Lob of Oracle 8i public int update(String sql, Object[] values, LobHandler lobHandler, String lobStatement, String[] lobTypes, Object[] lobKeys, Object[] lobValues) { int updateCount = update(sql, values); LinkedList lobParameters = null; lobParameters = new LinkedList(); for (int i = 0; i < lobTypes.length; i++) { int type = SQLTypeTransfer.getSQLType(lobTypes[i].toUpperCase()); lobParameters.add(new SqlParameter(type)); } PreparedStatementCreatorFactory preparedStatementFactory = new PreparedStatementCreatorFactory(lobStatement, lobParameters); query(preparedStatementFactory.newPreparedStatementCreator(lobKeys), new Oracle8iResultSetExtractor((AnyframeOracle8iLobHandler) lobHandler, lobValues)); return updateCount; }