当前位置: 首页>>代码示例>>Java>>正文


Java DatabaseMetaDataWrapper类代码示例

本文整理汇总了Java中org.apache.ddlutils.platform.DatabaseMetaDataWrapper的典型用法代码示例。如果您正苦于以下问题:Java DatabaseMetaDataWrapper类的具体用法?Java DatabaseMetaDataWrapper怎么用?Java DatabaseMetaDataWrapper使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DatabaseMetaDataWrapper类属于org.apache.ddlutils.platform包,在下文中一共展示了DatabaseMetaDataWrapper类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readPrimaryKeyNames

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
private static Collection<String> readPrimaryKeyNames(DatabaseMetaDataWrapper metaData, String tableName)
                                                                                                         throws SQLException {
    ResultSet pkData = null;

    try {
        List<String> pks = new ArrayList<String>();
        Map<String, Object> values;

        for (pkData = metaData.getPrimaryKeys(tableName); pkData.next(); pks.add(readPrimaryKeyName(metaData,
            values))) {
            values = readColumns(pkData, initColumnsForPK());
        }

        return pks;
    } finally {
        JdbcUtils.closeResultSet(pkData);
    }
}
 
开发者ID:luoyaogui,项目名称:otter-G,代码行数:19,代码来源:DdlUtils.java

示例2: readColumn

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
    Column column       = super.readColumn(metaData, values);
    String defaultValue = column.getDefaultValue();

    if (defaultValue != null)
    {
        // we check for these strings
        //   GENERATED_BY_DEFAULT               -> 'GENERATED BY DEFAULT AS IDENTITY'
        //   AUTOINCREMENT: start 1 increment 1 -> 'GENERATED ALWAYS AS IDENTITY'
        if ("GENERATED_BY_DEFAULT".equals(defaultValue) || defaultValue.startsWith("AUTOINCREMENT:"))
        {
            column.setDefaultValue(null);
            column.setAutoIncrement(true);
        }
        else if (TypeMap.isTextType(column.getTypeCode()))
        {
            column.setDefaultValue(unescape(defaultValue, "'", "''"));
        }
    }
    return column;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:26,代码来源:DerbyModelReader.java

示例3: readColumn

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
    * {@inheritDoc}
    */
   protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
   {
	Column column = super.readColumn(metaData, values);

	if (column.getDefaultValue() != null)
	{
		// SapDb pads the default value with spaces
		column.setDefaultValue(column.getDefaultValue().trim());
		// SapDb uses the default value for the auto-increment specification
		if (column.getDefaultValue().startsWith("DEFAULT SERIAL"))
		{
			column.setAutoIncrement(true);
			column.setDefaultValue(null);
		}
	}
	if (column.getTypeCode() == Types.DECIMAL)
	{
		// We also perform back-mapping to BIGINT
		if ((column.getSizeAsInt() == 38) && (column.getScale() == 0))
		{
			column.setTypeCode(Types.BIGINT);
		}
	}
	return column;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:29,代码来源:SapDbModelReader.java

示例4: removeSystemIndices

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected void removeSystemIndices(DatabaseMetaDataWrapper metaData, Table table) throws SQLException
{
    // Axion's JDBC driver does not support primary key reading, so we have to filter at this level
    for (int indexIdx = 0; indexIdx < table.getIndexCount();)
    {
        Index index = table.getIndex(indexIdx);

        // also, Axion's internal indices are not unique
        if (index.getName().startsWith("SYS_"))
        {
            table.removeIndex(indexIdx);
        }
        else
        {
            indexIdx++;
        }
    }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:22,代码来源:AxionModelReader.java

示例5: readTable

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
    * {@inheritDoc}
    */
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
       String tableName = (String)values.get("TABLE_NAME");

       for (int idx = 0; idx < KNOWN_SYSTEM_TABLES.length; idx++)
       {
       	if (KNOWN_SYSTEM_TABLES[idx].equals(tableName))
       	{
       		return null;
       	}
       }

       Table table = super.readTable(metaData, values);

       if (table != null)
       {
           // Db2 does not return the auto-increment status via the database metadata
           determineAutoIncrementColumns(table);
       }
       return table;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:25,代码来源:Db2ModelReader.java

示例6: readTable

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
    String tableName = (String)values.get("TABLE_NAME");

    // system table ?
    if (tableName.indexOf('$') > 0)
    {
        return null;
    }

    Table table = super.readTable(metaData, values);

    if (table != null)
    {
        determineAutoIncrementColumns(table);
    }

    return table;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:23,代码来源:Oracle8ModelReader.java

示例7: readIndex

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected void readIndex(DatabaseMetaDataWrapper metaData, Map values, Map knownIndices) throws SQLException
{
	if (getPlatform().isDelimitedIdentifierModeOn())
	{
        String indexName = (String)values.get("INDEX_NAME");

        // Sometimes, Sybase keeps the delimiter quotes around the index names
        // when returning them in the metadata, so we strip them
        if (indexName != null)
        {
	        String delimiter = getPlatformInfo().getDelimiterToken();

			if ((indexName != null) && indexName.startsWith(delimiter) && indexName.endsWith(delimiter))
			{
				indexName = indexName.substring(delimiter.length(), indexName.length() - delimiter.length());
				values.put("INDEX_NAME", indexName);
			}
        }
	}
	super.readIndex(metaData, values, knownIndices);
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:25,代码来源:SybaseModelReader.java

示例8: isInternalPrimaryKeyIndex

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) throws SQLException
{
    // We can simply check the sysindexes table where a specific flag is set for pk indexes
    final String query = "SELECT name = sysindexes.name FROM sysindexes, sysobjects WHERE sysobjects.name = ? " +
    		             "AND sysindexes.name = ? AND sysobjects.id = sysindexes.id AND (sysindexes.status & 2048) > 0";

    PreparedStatement stmt = null;

    try
    {
        stmt = getConnection().prepareStatement(query);

        stmt.setString(1, table.getName());
        stmt.setString(2, index.getName());
        
        ResultSet rs = stmt.executeQuery();

        return rs.next();
    }
    finally
    {
        closeStatement(stmt);
    }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:28,代码来源:SybaseModelReader.java

示例9: readTable

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
    Table table = super.readTable(metaData, values);

    if (table != null)
    {
        // For at least version 1.7.2 we have to determine the auto-increment columns
        // from a result set meta data because the database does not put this info
        // into the database metadata
        // Since Hsqldb only allows IDENTITY for primary key columns, we restrict
        // our search to those columns
        determineAutoIncrementFromResultSetMetaData(table, table.getPrimaryKeyColumns());
    }
    
    return table;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:20,代码来源:HsqlDbModelReader.java

示例10: readTable

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
    * {@inheritDoc}
    */
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
       String tableName = (String)values.get("TABLE_NAME");

       for (int idx = 0; idx < KNOWN_SYSTEM_TABLES.length; idx++)
       {
       	if (KNOWN_SYSTEM_TABLES[idx].equals(tableName))
       	{
       		return null;
       	}
       }

       Table table = super.readTable(metaData, values);

       if (table != null)
       {
           // Db2 does not return the auto-increment status via the database metadata
           determineAutoIncrementFromResultSetMetaData(table, table.getColumns());
       }
       return table;
}
 
开发者ID:flex-rental-solutions,项目名称:apache-ddlutils,代码行数:25,代码来源:Db2ModelReader.java

示例11: existsPKWithName

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * Determines whether there is a pk for the table with the given name.
 * 
 * @param metaData The database metadata
 * @param table    The table
 * @param name     The pk name
 * @return <code>true</code> if there is such a pk
 */
private boolean existsPKWithName(DatabaseMetaDataWrapper metaData, Table table, String name)
{
    try
    {
        ResultSet pks   = metaData.getPrimaryKeys(table.getName());
        boolean   found = false;

        while (pks.next() && !found)
        {
            if (name.equals(pks.getString("PK_NAME")))
            {
                found = true;
            }
        }
        pks.close();
        return found;
    }
    catch (SQLException ex)
    {
        throw new DdlUtilsException(ex);
    }
}
 
开发者ID:flex-rental-solutions,项目名称:apache-ddlutils,代码行数:31,代码来源:MSSqlModelReader.java

示例12: readColumn

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
    Column column = super.readColumn(metaData, values);

    if (column.getDefaultValue() != null)
    {
        // SapDb pads the default value with spaces
        column.setDefaultValue(column.getDefaultValue().trim());
        // SapDb uses the default value for the auto-increment specification
        if (column.getDefaultValue().startsWith("DEFAULT SERIAL"))
        {
            column.setAutoIncrement(true);
            column.setDefaultValue(null);
        }
    }
    if (column.getTypeCode() == Types.DECIMAL)
    {
        // need to use COLUMN_SIZE for precision instead of NUM_PREC_RADIX
        column.setPrecisionRadix(column.getSizeAsInt());

        // We also perform back-mapping to BIGINT
        if ((column.getSizeAsInt() == 38) && (column.getScale() == 0))
        {
            column.setTypeCode(Types.BIGINT);
        }
    }
    return column;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:32,代码来源:MaxDbModelReader.java

示例13: readTable

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
    Table table = super.readTable(metaData, values);

    if (table != null)
    {
    	determineAutoIncrementColumns(table);
    }

    return table;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:15,代码来源:FirebirdModelReader.java

示例14: readColumn

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
	Column column = super.readColumn(metaData, values);

	if (column.getTypeCode() == Types.FLOAT)
	{
		column.setTypeCode(Types.REAL);
	}
       else if (TypeMap.isTextType(column.getTypeCode()))
       {
           column.setDefaultValue(unescape(column.getDefaultValue(), "'", "''"));
       }
	return column;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:18,代码来源:FirebirdModelReader.java

示例15: readIndices

import org.apache.ddlutils.platform.DatabaseMetaDataWrapper; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
protected Collection readIndices(DatabaseMetaDataWrapper metaData, String tableName) throws SQLException
{
    // Jaybird is not able to read indices when delimited identifiers are turned on,
    // so we gather the data manually using Firebird's system tables
    final String query =
        "SELECT a.RDB$INDEX_NAME INDEX_NAME, b.RDB$RELATION_NAME TABLE_NAME, b.RDB$UNIQUE_FLAG NON_UNIQUE, " +
        "a.RDB$FIELD_POSITION ORDINAL_POSITION, a.RDB$FIELD_NAME COLUMN_NAME, 3 INDEX_TYPE " +
        "FROM RDB$INDEX_SEGMENTS a, RDB$INDICES b WHERE a.RDB$INDEX_NAME=b.RDB$INDEX_NAME AND b.RDB$RELATION_NAME = ?";

    Map               indices = new ListOrderedMap();
    PreparedStatement stmt    = null;

    try
    {
        stmt = getConnection().prepareStatement(query);

        stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());

        ResultSet indexData = stmt.executeQuery();

        while (indexData.next())
        {
            Map values = readColumns(indexData, getColumnsForIndex());

            // we have to reverse the meaning of the unique flag; also, null means false
            values.put("NON_UNIQUE", (values.get("NON_UNIQUE") == null) || Boolean.FALSE.equals(values.get("NON_UNIQUE")) ? Boolean.TRUE : Boolean.FALSE);
            // and trim the names
            values.put("INDEX_NAME",  ((String)values.get("INDEX_NAME")).trim());
            values.put("TABLE_NAME",  ((String)values.get("TABLE_NAME")).trim());
            values.put("COLUMN_NAME", ((String)values.get("COLUMN_NAME")).trim());
            readIndex(metaData, values, indices);
        }
    }
    finally
    {
        closeStatement(stmt);
    }
    return indices.values();
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:43,代码来源:FirebirdModelReader.java


注:本文中的org.apache.ddlutils.platform.DatabaseMetaDataWrapper类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。