Example usage for org.springframework.jdbc.core SqlParameterValue getValue

List of usage examples for org.springframework.jdbc.core SqlParameterValue getValue

Introduction

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

Prototype

@Nullable
public Object getValue() 

Source Link

Document

Return the value object that this parameter value holds.

Usage

From source file:com.nortal.petit.core.util.ArgPreparedStatementSetter.java

public static int setValues(PreparedStatement ps, Object[] args, int startIndex) throws SQLException {
    int j = startIndex;
    if (args != null) {
        for (int i = 0; i < args.length; i++, j++) {
            Object arg = args[i];
            if (arg instanceof SqlParameterValue) {
                SqlParameterValue paramValue = (SqlParameterValue) arg;
                StatementCreatorUtils.setParameterValue(ps, j, paramValue, paramValue.getValue());
            } else {
                StatementCreatorUtils.setParameterValue(ps, j, SqlTypeValue.TYPE_UNKNOWN, arg);
            }//from   w  ww.jav  a 2s  . c  o m
        }
    }
    return j;
}

From source file:org.hxzon.util.db.springjdbc.StatementCreatorUtils.java

/**
 * Set the value for a parameter. The method used is based on the SQL type
 * of the parameter and we can handle complex types like arrays and LOBs.
 * @param ps the prepared statement or callable statement
 * @param paramIndex index of the parameter we are setting
 * @param sqlType the SQL type of the parameter
 * @param typeName the type name of the parameter
 * (optional, only used for SQL NULL and SqlTypeValue)
 * @param scale the number of digits after the decimal point
 * (for DECIMAL and NUMERIC types)//from w w w  .j a v a 2s  .c  o  m
 * @param inValue the value to set (plain value or a SqlTypeValue)
 * @throws SQLException if thrown by PreparedStatement methods
 * @see SqlTypeValue
 */
private static void setParameterValueInternal(PreparedStatement ps, int paramIndex, int sqlType,
        String typeName, Integer scale, Object inValue) throws SQLException {

    String typeNameToUse = typeName;
    int sqlTypeToUse = sqlType;
    Object inValueToUse = inValue;

    // override type info?
    if (inValue instanceof SqlParameterValue) {
        SqlParameterValue parameterValue = (SqlParameterValue) inValue;
        if (logger.isDebugEnabled()) {
            logger.debug("Overriding type info with runtime info from SqlParameterValue: column index "
                    + paramIndex + ", SQL type " + parameterValue.getSqlType() + ", type name "
                    + parameterValue.getTypeName());
        }
        if (parameterValue.getSqlType() != SqlTypeValue.TYPE_UNKNOWN) {
            sqlTypeToUse = parameterValue.getSqlType();
        }
        if (parameterValue.getTypeName() != null) {
            typeNameToUse = parameterValue.getTypeName();
        }
        inValueToUse = parameterValue.getValue();
    }

    if (logger.isTraceEnabled()) {
        logger.trace("Setting SQL statement parameter value: column index " + paramIndex + ", parameter value ["
                + inValueToUse + "], value class ["
                + (inValueToUse != null ? inValueToUse.getClass().getName() : "null") + "], SQL type "
                + (sqlTypeToUse == SqlTypeValue.TYPE_UNKNOWN ? "unknown" : Integer.toString(sqlTypeToUse)));
    }

    if (inValueToUse == null) {
        setNull(ps, paramIndex, sqlTypeToUse, typeNameToUse);
    } else {
        setValue(ps, paramIndex, sqlTypeToUse, typeNameToUse, scale, inValueToUse);
    }
}

From source file:cc.tooyoung.common.db.ArgPreparedStatementSetter.java

public void setValues(PreparedStatement ps) throws SQLException {
    if (this.args != null) {
        for (int i = 0; i < this.args.length; i++) {
            Object arg = this.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);
            }// w  w  w.j  a  v a  2 s  .  co  m
        }
    }
}

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/* w  w w . j a va 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 .  ja v a2  s  .  c  o  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  w  w .  j a  v  a  2  s .  co  m*/
        }
    }
}

From source file:org.springframework.jdbc.core.StatementCreatorUtils.java

/**
 * Set the value for a parameter. The method used is based on the SQL type
 * of the parameter and we can handle complex types like arrays and LOBs.
 * @param ps the prepared statement or callable statement
 * @param paramIndex index of the parameter we are setting
 * @param sqlType the SQL type of the parameter
 * @param typeName the type name of the parameter
 * (optional, only used for SQL NULL and SqlTypeValue)
 * @param scale the number of digits after the decimal point
 * (for DECIMAL and NUMERIC types)/*from w  ww  .  ja  va2  s .co  m*/
 * @param inValue the value to set (plain value or a SqlTypeValue)
 * @throws SQLException if thrown by PreparedStatement methods
 * @see SqlTypeValue
 */
private static void setParameterValueInternal(PreparedStatement ps, int paramIndex, int sqlType,
        @Nullable String typeName, @Nullable Integer scale, @Nullable Object inValue) throws SQLException {

    String typeNameToUse = typeName;
    int sqlTypeToUse = sqlType;
    Object inValueToUse = inValue;

    // override type info?
    if (inValue instanceof SqlParameterValue) {
        SqlParameterValue parameterValue = (SqlParameterValue) inValue;
        if (logger.isDebugEnabled()) {
            logger.debug("Overriding type info with runtime info from SqlParameterValue: column index "
                    + paramIndex + ", SQL type " + parameterValue.getSqlType() + ", type name "
                    + parameterValue.getTypeName());
        }
        if (parameterValue.getSqlType() != SqlTypeValue.TYPE_UNKNOWN) {
            sqlTypeToUse = parameterValue.getSqlType();
        }
        if (parameterValue.getTypeName() != null) {
            typeNameToUse = parameterValue.getTypeName();
        }
        inValueToUse = parameterValue.getValue();
    }

    if (logger.isTraceEnabled()) {
        logger.trace("Setting SQL statement parameter value: column index " + paramIndex + ", parameter value ["
                + inValueToUse + "], value class ["
                + (inValueToUse != null ? inValueToUse.getClass().getName() : "null") + "], SQL type "
                + (sqlTypeToUse == SqlTypeValue.TYPE_UNKNOWN ? "unknown" : Integer.toString(sqlTypeToUse)));
    }

    if (inValueToUse == null) {
        setNull(ps, paramIndex, sqlTypeToUse, typeNameToUse);
    } else {
        setValue(ps, paramIndex, sqlTypeToUse, typeNameToUse, scale, inValueToUse);
    }
}