Example usage for org.springframework.jdbc.core StatementCreatorUtils setParameterValue

List of usage examples for org.springframework.jdbc.core StatementCreatorUtils setParameterValue

Introduction

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

Prototype

public static void setParameterValue(PreparedStatement ps, int paramIndex, int sqlType,
        @Nullable Object inValue) throws SQLException 

Source Link

Document

Set the value for a parameter.

Usage

From source file:org.snaker.engine.access.spring.SpringJdbcAccess.java

@Override
public void updateProcess(final Process process) {
    super.updateProcess(process);
    if (process.getBytes() != null) {
        template.execute(PROCESS_UPDATE_BLOB, new AbstractLobCreatingPreparedStatementCallback(lobHandler) {
            @Override//www.j  a  va  2s .co m
            protected void setValues(PreparedStatement ps, LobCreator lobCreator)
                    throws SQLException, DataAccessException {
                try {
                    lobCreator.setBlobAsBytes(ps, 1, process.getBytes());
                    StatementCreatorUtils.setParameterValue(ps, 2, Types.VARCHAR, process.getId());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

From source file:com.gzj.tulip.jade.dataaccess.DataAccessImpl.java

private PreparedStatementCreator getPreparedStatementCreator(//
        final String sql, final Object[] args, final boolean returnKeys) {
    PreparedStatementCreator creator = new PreparedStatementCreator() {

        @Override/*from   www  .  j  ava 2  s .c o m*/
        public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
            PreparedStatement ps = con.prepareStatement(sql);
            if (returnKeys) {
                ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            } else {
                ps = con.prepareStatement(sql);
            }

            if (args != null) {
                for (int i = 0; i < args.length; i++) {
                    Object arg = args[i];
                    if (arg instanceof SqlParameterValue) {
                        SqlParameterValue paramValue = (SqlParameterValue) arg;
                        StatementCreatorUtils.setParameterValue(ps, i + 1, paramValue, paramValue.getValue());
                    } else {
                        StatementCreatorUtils.setParameterValue(ps, i + 1, SqlTypeValue.TYPE_UNKNOWN, arg);
                    }
                }
            }
            return ps;
        }
    };
    return creator;
}

From source file:com.laxser.blitz.lama.provider.jdbc.JdbcImpl.java

@Override
public int[] batchUpdate(Modifier modifier, String sql, final List<Object[]> args) throws DataAccessException {
    if (logger.isDebugEnabled()) {
        logger.debug("Executing SQL batch update [" + sql + "]");
    }//from   ww  w  .j  a v a2 s .  co  m

    return spring.batchUpdate(sql, new BatchPreparedStatementSetter() {

        @Override
        public void setValues(PreparedStatement ps, int i) throws SQLException {
            Object[] values = args.get(i);
            for (int j = 0; j < values.length; j++) {
                Object arg = values[j];
                if (arg instanceof SqlParameterValue) {
                    SqlParameterValue paramValue = (SqlParameterValue) arg;
                    StatementCreatorUtils.setParameterValue(ps, j + 1, paramValue, paramValue.getValue());
                } else {
                    StatementCreatorUtils.setParameterValue(ps, j + 1, SqlTypeValue.TYPE_UNKNOWN, arg);
                }
            }
        }

        @Override
        public int getBatchSize() {
            return args.size();
        }
    });
}

From source file:com.sinosoft.one.data.jade.dataaccess.DataAccessImpl.java

private void setParams(PreparedStatement ps, Object[] args) throws SQLException {
    if (args != null) {
        for (int i = 0; i < args.length; i++) {
            Object arg = args[i];
            if (arg instanceof SqlParameterValue) {
                SqlParameterValue paramValue = (SqlParameterValue) arg;
                StatementCreatorUtils.setParameterValue(ps, i + 1, paramValue, paramValue.getValue());
            } else {
                StatementCreatorUtils.setParameterValue(ps, i + 1, SqlTypeValue.TYPE_UNKNOWN, arg);
            }/*from   w ww . ja  v  a  2 s. co  m*/
        }
    }
}

From source file:org.jasig.ssp.util.importer.job.staging.SqlServerStagingTableWriter.java

@Override
public void write(final List<? extends RawItem> items) {

    NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
    String fileName = items.get(0).getResource().getFilename();
    final String[] tableName = fileName.split("\\.");

    Integer batchStart = (Integer) (stepExecution.getExecutionContext().get("batchStart") == null ? null
            : stepExecution.getExecutionContext().get("batchStart"));
    Integer batchStop = (Integer) (stepExecution.getExecutionContext().get("batchStop") == null ? null
            : stepExecution.getExecutionContext().get("batchStop"));
    Object currentEntity = stepExecution.getExecutionContext().get("currentEntity");

    if (currentEntity == null || !currentEntity.equals(tableName[0])) {
        batchStart = 0;//  ww w  . jav  a2 s.c  o m
        batchStop = items.size() - 1;
        currentEntity = tableName[0];
        stepExecution.getExecutionContext().put("currentEntity", currentEntity);
        stepExecution.getExecutionContext().put("batchStart", batchStart);
        stepExecution.getExecutionContext().put("batchStop", batchStop);
    } else {
        batchStart = batchStop + 1;
        batchStop = (Integer) batchStart + items.size() - 1;
        stepExecution.getExecutionContext().put("batchStart", batchStart);
        stepExecution.getExecutionContext().put("batchStop", batchStop);
    }

    RawItem firstItem = items.get(0);
    Resource firstItemResource = firstItem.getResource();

    if (currentResource == null || !(this.currentResource.equals(firstItemResource))) {
        this.orderedHeaders = writeHeader(firstItem);
        this.currentResource = firstItemResource;
    }

    StringBuilder insertSql = new StringBuilder();
    insertSql.append("INSERT INTO stg_" + tableName[0] + " (batch_id,");
    StringBuilder valuesSqlBuilder = new StringBuilder();
    valuesSqlBuilder.append(" VALUES (?,");
    for (String header : this.orderedHeaders) {
        insertSql.append(header).append(",");
        valuesSqlBuilder.append("?").append(",");
    }
    insertSql.setLength(insertSql.length() - 1); // trim comma
    valuesSqlBuilder.setLength(valuesSqlBuilder.length() - 1); // trim comma
    insertSql.append(")");
    valuesSqlBuilder.append(");");
    insertSql.append(valuesSqlBuilder);

    final AtomicInteger batchStartRef = new AtomicInteger(batchStart);
    final String sql = insertSql.toString();
    jdbcTemplate.getJdbcOperations().execute(sql, new PreparedStatementCallback() {
        @Override
        public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
            for (RawItem item : items) {
                final List<Object> paramsForLog = new ArrayList(orderedHeaders.length);
                int counter = 1;
                paramsForLog.add(batchStartRef.get());
                StatementCreatorUtils.setParameterValue(ps, counter, SqlTypeValue.TYPE_UNKNOWN,
                        batchStartRef.getAndIncrement());
                counter++;
                for (String header : orderedHeaders) {
                    final Map<String, String> record = item.getRecord();
                    String value = record.get(header);
                    final Integer sqlType = metadataRepository.getRepository().getColumnMetadataRepository()
                            .getColumnMetadata(new ColumnReference(tableName[0], header)).getJavaSqlType();
                    paramsForLog.add(value);
                    StatementCreatorUtils.setParameterValue(ps, counter, sqlType, value);
                    counter++;
                }
                sayQuery(sql, paramsForLog);
                ps.addBatch();
            }
            return ps.executeBatch();
        }
    });
    batchStart = batchStartRef.get();
    say("******CHUNK SQLSERVER******");
}

From source file:org.jasig.ssp.util.importer.job.staging.PostgresStagingTableWriter.java

@Override
public void write(final List<? extends RawItem> items) {

    NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
    String fileName = items.get(0).getResource().getFilename();
    final String[] tableName = fileName.split("\\.");

    Integer batchStart = (Integer) (stepExecution.getExecutionContext().get("batchStart") == null ? null
            : stepExecution.getExecutionContext().get("batchStart"));
    Integer batchStop = (Integer) (stepExecution.getExecutionContext().get("batchStop") == null ? null
            : stepExecution.getExecutionContext().get("batchStop"));
    Object currentEntity = stepExecution.getExecutionContext().get("currentEntity");

    if (currentEntity == null || !currentEntity.equals(tableName[0])) {
        batchStart = 0;/*from w  w  w.  ja va  2  s  .  c o m*/
        batchStop = items.size() - 1;
        currentEntity = tableName[0];
        stepExecution.getExecutionContext().put("currentEntity", currentEntity);
        stepExecution.getExecutionContext().put("batchStart", batchStart);
        stepExecution.getExecutionContext().put("batchStop", batchStop);
    } else {
        batchStart = batchStop + 1;
        batchStop = (Integer) batchStart + items.size() - 1;
        stepExecution.getExecutionContext().put("batchStart", batchStart);
        stepExecution.getExecutionContext().put("batchStop", batchStop);
    }

    RawItem firstItem = items.get(0);
    Resource firstItemResource = firstItem.getResource();

    if (currentResource == null || !(this.currentResource.equals(firstItemResource))) {
        this.orderedHeaders = writeHeader(firstItem);
        this.currentResource = firstItemResource;
    }

    StringBuilder insertSql = new StringBuilder();
    insertSql.append("INSERT INTO stg_" + tableName[0] + " (batch_id,");
    StringBuilder valuesSqlBuilder = new StringBuilder();
    valuesSqlBuilder.append(" VALUES (?,");
    for (String header : this.orderedHeaders) {
        insertSql.append(header).append(",");
        valuesSqlBuilder.append("?").append(",");
    }
    insertSql.setLength(insertSql.length() - 1); // trim comma
    valuesSqlBuilder.setLength(valuesSqlBuilder.length() - 1); // trim comma
    insertSql.append(")");
    valuesSqlBuilder.append(");");
    insertSql.append(valuesSqlBuilder);

    final AtomicInteger batchStartRef = new AtomicInteger(batchStart);
    final String sql = insertSql.toString();

    jdbcTemplate.getJdbcOperations().execute(sql, new PreparedStatementCallback() {
        @Override
        public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
            for (RawItem item : items) {
                final List<Object> paramsForLog = new ArrayList(orderedHeaders.length);
                int counter = 1;
                paramsForLog.add(batchStartRef.get());
                StatementCreatorUtils.setParameterValue(ps, counter, SqlTypeValue.TYPE_UNKNOWN,
                        batchStartRef.getAndIncrement());
                counter++;
                for (String header : orderedHeaders) {
                    final Map<String, String> record = item.getRecord();
                    String value = record.get(header);
                    final Integer sqlType = metadataRepository.getRepository().getColumnMetadataRepository()
                            .getColumnMetadata(new ColumnReference(tableName[0], header)).getJavaSqlType();
                    paramsForLog.add(value);
                    StatementCreatorUtils.setParameterValue(ps, counter, sqlType, value);
                    counter++;
                }
                sayQuery(sql, paramsForLog);
                ps.addBatch();
            }
            return ps.executeBatch();
        }
    });

    batchStart = batchStartRef.get();

    say("******CHUNK POSTGRES******");
}

From source file:org.jumpmind.db.platform.sqlite.SqliteJdbcSqlTemplate.java

@Override
public void setValues(PreparedStatement ps, Object[] args, int[] argTypes, LobHandler lobHandler)
        throws SQLException {
    for (int i = 1; i <= args.length; i++) {
        Object arg = args[i - 1];
        int argType = argTypes != null && argTypes.length >= i ? argTypes[i - 1] : SqlTypeValue.TYPE_UNKNOWN;

        if (argType == Types.BLOB && lobHandler != null && arg instanceof byte[]) {
            lobHandler.getLobCreator().setBlobAsBytes(ps, i, (byte[]) arg);
        } else if (argType == Types.BLOB && lobHandler != null && arg instanceof String) {
            lobHandler.getLobCreator().setBlobAsBytes(ps, i, arg.toString().getBytes());
        } else if (argType == Types.CLOB && lobHandler != null) {
            lobHandler.getLobCreator().setClobAsString(ps, i, (String) arg);
        } else if (arg != null && argType == Types.DATE && arg instanceof Date) {
            Date clone = (Date) (((Date) arg).clone());
            arg = FormatUtils.TIMESTAMP_FORMATTER.format(DateUtils.truncate(clone, Calendar.DATE));
            args[i - 1] = arg;/*from ww  w  . j  a  v a2  s. c o m*/
            StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
        } else if (arg != null && (arg instanceof Date || arg instanceof Timestamp)) {
            arg = FormatUtils.TIMESTAMP_FORMATTER.format(arg);
            args[i - 1] = arg;
            StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
        } else {
            if (arg instanceof BigDecimal) {
                arg = ((BigDecimal) arg).doubleValue();
                args[i - 1] = arg;
            }
            StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
        }
    }
}

From source file:org.jumpmind.db.sql.JdbcSqlTemplate.java

public void setValues(PreparedStatement ps, Object[] args, int[] argTypes, LobHandler lobHandler)
        throws SQLException {
    for (int i = 1; i <= args.length; i++) {
        Object arg = args[i - 1];
        int argType = argTypes != null && argTypes.length >= i ? argTypes[i - 1] : SqlTypeValue.TYPE_UNKNOWN;
        if (argType == Types.BLOB && lobHandler != null && arg instanceof byte[]) {
            lobHandler.getLobCreator().setBlobAsBytes(ps, i, (byte[]) arg);
        } else if (argType == Types.BLOB && lobHandler != null && arg instanceof String) {
            lobHandler.getLobCreator().setBlobAsBytes(ps, i, arg.toString().getBytes());
        } else if (argType == Types.CLOB && lobHandler != null) {
            lobHandler.getLobCreator().setClobAsString(ps, i, (String) arg);
        } else if ((argType == Types.DECIMAL || argType == Types.NUMERIC) && arg != null) {
            setDecimalValue(ps, i, arg, argType);
        } else if (argType == Types.TINYINT) {
            setTinyIntValue(ps, i, arg, argType);
        } else {//  w  w w  .  j a v  a  2s  .  c  o m
            StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
        }
    }
}

From source file:org.jumpmind.db.sql.JdbcSqlTemplate.java

protected void setTinyIntValue(PreparedStatement ps, int i, Object arg, int argType) throws SQLException {
    StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
}

From source file:org.jumpmind.db.sql.JdbcSqlTemplate.java

protected void setDecimalValue(PreparedStatement ps, int i, Object arg, int argType) throws SQLException {
    StatementCreatorUtils.setParameterValue(ps, i, verifyArgType(arg, argType), arg);
}