private int executeUpdate()

in rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Statement.java [143:173]


    private int executeUpdate(PreparedStatement ps, ParametersExtendedImpl parameters) throws SQLException {
        if (this.logger.isDebugEnabled()) {
            this.logger.debug("Executing statement " + queryString);
        }

        Iterator i = parameters.getInParameters().iterator();
        while (i.hasNext()) {
        	ParameterExtendedImpl param = (ParameterExtendedImpl) i.next();

            Object value = param.getValue();
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Setting parameter " + param.getIndex() + " to " + value);
            }

            if (value == null) {
                if (param.getType() == null) {
                    try {
                        ParameterMetaData pmd = ps.getParameterMetaData();
                        ps.setNull(param.getIndex(), pmd.getParameterType(param.getIndex()));
                    } catch (SQLException ex) {
                        ps.setNull(param.getIndex(), SDODataTypeHelper.sqlTypeFor(null));
                    }
                } else {
                    ps.setNull(param.getIndex(), SDODataTypeHelper.sqlTypeFor(param.getType()));
                }
            } else {
                ps.setObject(param.getIndex(), value);
            }
        }
        return ps.executeUpdate();
    }