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


Java AddColumnStatement.getColumnName方法代码示例

本文整理汇总了Java中liquibase.statement.core.AddColumnStatement.getColumnName方法的典型用法代码示例。如果您正苦于以下问题:Java AddColumnStatement.getColumnName方法的具体用法?Java AddColumnStatement.getColumnName怎么用?Java AddColumnStatement.getColumnName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在liquibase.statement.core.AddColumnStatement的用法示例。


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

示例1: addForeignKeyStatements

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
protected void addForeignKeyStatements(AddColumnStatement statement, Database database, List<Sql> returnSql) {
    for (ColumnConstraint constraint : statement.getConstraints()) {
        if (constraint instanceof ForeignKeyConstraint) {
            ForeignKeyConstraint fkConstraint = (ForeignKeyConstraint) constraint;
            Matcher referencesMatcher = Pattern.compile("([\\w\\._]+)\\(([\\w_]+)\\)").matcher(fkConstraint.getReferences());
            if (!referencesMatcher.matches()) {
                throw new UnexpectedLiquibaseException("Don't know how to find table and column names from " + fkConstraint.getReferences());
            }
            String refSchemaName = null;
            String refTableName = referencesMatcher.group(1);
            if (refTableName.indexOf(".") > 0) {
                refSchemaName = refTableName.split("\\.")[0];
                refTableName = refTableName.split("\\.")[1];
            }
            String refColName = referencesMatcher.group(2);

            AddForeignKeyConstraintStatement addForeignKeyConstraintStatement = new AddForeignKeyConstraintStatement(fkConstraint.getForeignKeyName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName(), refSchemaName, refTableName, refColName);
            returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(addForeignKeyConstraintStatement, database)));
        }
    }
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:22,代码来源:AddColumnGenerator.java

示例2: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
@Override
public Sql[] generateSql(final AddColumnStatement statement,
      final Database database, final SqlGeneratorChain sqlGeneratorChain) {

   GeometryType geometryType = null;
   final LiquibaseDataType dataType = DataTypeFactory.getInstance()
         .fromDescription(statement.getColumnType(), database);
   if (dataType instanceof GeometryType) {
      geometryType = (GeometryType) dataType;
   }

   final boolean isGeometryColumn = geometryType != null;

   // The AddGeometryColumn procedure handles the column already being
   // present, so let a
   // downstream SQL generator handle the typical column addition logic (e.g.
   // placement in the
   // table) then invoke the procedure.
   final List<Sql> list = new ArrayList<Sql>();
   list.addAll(Arrays.asList(sqlGeneratorChain.generateSql(statement,
         database)));
   if (isGeometryColumn) {
      String schemaName = statement.getSchemaName();
      if (schemaName == null) {
         schemaName = database.getDefaultSchemaName();
      }
      final String tableName = statement.getTableName();
      final String columnName = statement.getColumnName();

      final int srid = geometryType.getSRID();
      final String geomType = StringUtils.trimToNull(geometryType
            .getGeometryType()) == null ? "'Geometry'" : "'"
            + database.escapeStringForDatabase(geometryType
                  .getGeometryType()) + "'";
      final String sql = "CALL AddGeometryColumn('" + schemaName + "', '"
            + tableName + "', '" + columnName + "', " + srid + ", "
            + geomType + ", 2)";
      final Sql addGeometryColumn = new UnparsedSql(sql);
      list.add(addGeometryColumn);
   }
   return list.toArray(new Sql[list.size()]);
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:43,代码来源:AddGeometryColumnGeneratorGeoDB.java

示例3: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
@Override
    public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
        if (!supports(statement, database)) {
            return sqlGeneratorChain.generateSql(statement, database);
        }

        String catalogName = statement.getCatalogName();
        String schemaName = statement.getSchemaName();
        if (schemaName == null) {
            schemaName = database.getDefaultSchemaName();
        }
        String tableName = statement.getTableName();
        String columnName = statement.getColumnName();
        String columnType = statement.getColumnType();

        String alterTable = "ALTER TABLE " + database.escapeTableName(catalogName, schemaName, tableName) +
                " ADD (" + database.escapeColumnName(catalogName, schemaName, tableName, columnName) +
                " " + DataTypeFactory.getInstance().fromDescription(columnType + 
                (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database).toDatabaseDataType(database);

        if (statement.isAutoIncrement() && database.supportsAutoIncrement()) {
            AutoIncrementConstraint autoIncrementConstraint = statement.getAutoIncrementConstraint();
            alterTable += " " + database.getAutoIncrementClause(autoIncrementConstraint.getStartWith(), autoIncrementConstraint.getIncrementBy());
        }

        if (!statement.isNullable()) {
            alterTable += " NOT NULL";
        }

        if (statement.isPrimaryKey()) {
            alterTable += " PRIMARY KEY";
        }

        // "ALTER TABLE ADD COLUMN ..." does not support unique constraints in Hana
//        if (statement.isUnique()) {
//            alterTable += " UNIQUE ";
//        }

        alterTable += getDefaultClause(statement, database);

        if ( database instanceof HanaDBDatabase ) {
            alterTable += ")";
        }

        List<Sql> returnSql = new ArrayList<Sql>();
        
        // drop both incoming and outgoing foreign key constraints before adding column
        Set<ForeignKeyConstraintMetaData> constraints = SqlGeneratorHelperHanaDB.getAllForeignKeyConstraints(database, schemaName, tableName);
        SqlGeneratorHelperHanaDB.addDropForeignKeyConstraintsStatements(returnSql, database, constraints);
        
        returnSql.add(new UnparsedSql(alterTable, getAffectedColumn(statement)));
        
        // recreate foreign key constraints
        SqlGeneratorHelperHanaDB.addCreateForeignKeyConstraintsStatements(returnSql, database, constraints);

        addForeignKeyStatements(statement, database, returnSql);

        return returnSql.toArray(new Sql[returnSql.size()]);
    }
 
开发者ID:lbitonti,项目名称:liquibase-hana,代码行数:60,代码来源:AddColumnGeneratorHanaDB.java


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