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

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

Introduction

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

Prototype

public PreparedStatementCreatorFactory(String sql, List<SqlParameter> declaredParameters) 

Source Link

Document

Create a new factory with the given SQL and parameters.

Usage

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;
}