Example usage for org.springframework.jdbc.core.metadata TableParameterMetaData getParameterName

List of usage examples for org.springframework.jdbc.core.metadata TableParameterMetaData getParameterName

Introduction

In this page you can find the example usage for org.springframework.jdbc.core.metadata TableParameterMetaData getParameterName.

Prototype

public String getParameterName() 

Source Link

Document

Get the parameter name.

Usage

From source file:paillard.florent.springframework.simplejdbcupdate.TableMetaDataContext.java

/**
 * Build the array of {@link java.sql.Types} based on configuration and
 * metadata information/*from ww  w  .  jav  a 2s . c om*/
 * 
 * @return the array of types to be used
 */
public int[] createColumnTypes(List<String> columns) {
    int[] types = new int[columns.size()];
    List<TableParameterMetaData> parameters = this.metaDataProvider.getTableParameterMetaData();
    Map<String, TableParameterMetaData> parameterMap = new HashMap<String, TableParameterMetaData>(
            parameters.size());
    for (TableParameterMetaData tpmd : parameters) {
        parameterMap.put(tpmd.getParameterName().toUpperCase(), tpmd);
    }
    int typeIndx = 0;
    for (String column : columns) {
        if (column == null) {
            types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN;
        } else {
            TableParameterMetaData tpmd = parameterMap.get(column.toUpperCase());
            if (tpmd != null) {
                types[typeIndx] = tpmd.getSqlType();
            } else {
                types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN;
            }
        }
        typeIndx++;
    }
    return types;
}

From source file:paillard.florent.springframework.simplejdbcupdate.TableMetaDataContext.java

public List<String> createColumns() {
    List<TableParameterMetaData> tableParameterMetaDataList = this.metaDataProvider.getTableParameterMetaData();
    List<String> columnList = new ArrayList<String>(tableParameterMetaDataList.size());
    for (TableParameterMetaData tableParameterMetaData : tableParameterMetaDataList) {
        columnList.add(tableParameterMetaData.getParameterName());
    }/* ww  w.j a  v  a 2  s. c  om*/
    return columnList;
}

From source file:paillard.florent.springframework.simplejdbcupdate.TableMetaDataContext.java

/**
 * Compare columns created from metadata with declared columns and return a
 * reconciled list./*from  w  w  w  . ja  v  a2s. c o  m*/
 * 
 * @param declaredColumns
 *            declared column names
 * @param generatedKeyNames
 *            names of generated key columns
 */
protected List<String> reconcileColumnsToUse(List<String> declaredColumns, String[] generatedKeyNames) {
    if (declaredColumns.size() > 0) {
        return new ArrayList<String>(declaredColumns);
    }
    Set<String> keys = new HashSet<String>(generatedKeyNames.length);
    for (String key : generatedKeyNames) {
        keys.add(key.toUpperCase());
    }
    List<String> columns = new ArrayList<String>();
    for (TableParameterMetaData meta : metaDataProvider.getTableParameterMetaData()) {
        if (!keys.contains(meta.getParameterName().toUpperCase())) {
            columns.add(meta.getParameterName());
        }
    }
    return columns;
}

From source file:org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider.java

/**
 * Method supporting the metadata processing for a table's columns
 *///from   w w w. jav a  2  s .  com
private void processTableColumns(DatabaseMetaData databaseMetaData, TableMetaData tmd) {
    ResultSet tableColumns = null;
    String metaDataCatalogName = metaDataCatalogNameToUse(tmd.getCatalogName());
    String metaDataSchemaName = metaDataSchemaNameToUse(tmd.getSchemaName());
    String metaDataTableName = tableNameToUse(tmd.getTableName());
    if (logger.isDebugEnabled()) {
        logger.debug("Retrieving metadata for " + metaDataCatalogName + '/' + metaDataSchemaName + '/'
                + metaDataTableName);
    }
    try {
        tableColumns = databaseMetaData.getColumns(metaDataCatalogName, metaDataSchemaName, metaDataTableName,
                null);
        while (tableColumns.next()) {
            String columnName = tableColumns.getString("COLUMN_NAME");
            int dataType = tableColumns.getInt("DATA_TYPE");
            if (dataType == Types.DECIMAL) {
                String typeName = tableColumns.getString("TYPE_NAME");
                int decimalDigits = tableColumns.getInt("DECIMAL_DIGITS");
                // Override a DECIMAL data type for no-decimal numerics
                // (this is for better Oracle support where there have been issues
                // using DECIMAL for certain inserts (see SPR-6912))
                if ("NUMBER".equals(typeName) && decimalDigits == 0) {
                    dataType = Types.NUMERIC;
                    if (logger.isDebugEnabled()) {
                        logger.debug("Overriding metadata: " + columnName + " now NUMERIC instead of DECIMAL");
                    }
                }
            }
            boolean nullable = tableColumns.getBoolean("NULLABLE");
            TableParameterMetaData meta = new TableParameterMetaData(columnName, dataType, nullable);
            this.tableParameterMetaData.add(meta);
            if (logger.isDebugEnabled()) {
                logger.debug("Retrieved metadata: " + meta.getParameterName() + " " + meta.getSqlType() + " "
                        + meta.isNullable());
            }
        }
    } catch (SQLException ex) {
        if (logger.isWarnEnabled()) {
            logger.warn("Error while retrieving metadata for table columns: " + ex.getMessage());
        }
    } finally {
        JdbcUtils.closeResultSet(tableColumns);
    }
}

From source file:org.springframework.jdbc.core.metadata.TableMetaDataContext.java

/**
 * Compare columns created from metadata with declared columns and return a reconciled list.
 * @param declaredColumns declared column names
 * @param generatedKeyNames names of generated key columns
 *//*from www.  java2  s.c  o  m*/
protected List<String> reconcileColumnsToUse(List<String> declaredColumns, String[] generatedKeyNames) {
    if (generatedKeyNames.length > 0) {
        this.generatedKeyColumnsUsed = true;
    }
    if (!declaredColumns.isEmpty()) {
        return new ArrayList<>(declaredColumns);
    }
    Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length);
    for (String key : generatedKeyNames) {
        keys.add(key.toUpperCase());
    }
    List<String> columns = new ArrayList<>();
    for (TableParameterMetaData meta : obtainMetaDataProvider().getTableParameterMetaData()) {
        if (!keys.contains(meta.getParameterName().toUpperCase())) {
            columns.add(meta.getParameterName());
        }
    }
    return columns;
}

From source file:org.springframework.jdbc.core.metadata.TableMetaDataContext.java

/**
 * Build the array of {@link java.sql.Types} based on configuration and metadata information
 * @return the array of types to be used
 *///ww w. j a v  a  2s  .  c  o  m
public int[] createInsertTypes() {
    int[] types = new int[getTableColumns().size()];
    List<TableParameterMetaData> parameters = obtainMetaDataProvider().getTableParameterMetaData();
    Map<String, TableParameterMetaData> parameterMap = new LinkedHashMap<>(parameters.size());
    for (TableParameterMetaData tpmd : parameters) {
        parameterMap.put(tpmd.getParameterName().toUpperCase(), tpmd);
    }
    int typeIndx = 0;
    for (String column : getTableColumns()) {
        if (column == null) {
            types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN;
        } else {
            TableParameterMetaData tpmd = parameterMap.get(column.toUpperCase());
            if (tpmd != null) {
                types[typeIndx] = tpmd.getSqlType();
            } else {
                types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN;
            }
        }
        typeIndx++;
    }
    return types;
}