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


Java LiquibaseDataType类代码示例

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


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

示例1: generateSql

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Override
public Sql[] generateSql(final CreateTableStatement statement, final Database database,
      final SqlGeneratorChain sqlGeneratorChain) {
   final List<Sql> list = new ArrayList<Sql>(Arrays.asList(sqlGeneratorChain.generateSql(
         statement, database)));
   for (final Entry<String, LiquibaseDataType> entry : statement.getColumnTypes().entrySet()) {
      if (entry.getValue() instanceof GeometryType) {
         final String columnName = entry.getKey();
         final GeometryType geometryType = (GeometryType) entry.getValue();
         final AddGeometryColumnGeneratorGeoDB generator = new AddGeometryColumnGeneratorGeoDB();
         final AddColumnStatement addColumnStatement = new AddColumnStatement(
               statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(),
               columnName, geometryType.toString(), null);
         @SuppressWarnings("rawtypes")
         final SqlGeneratorChain emptyChain = new SqlGeneratorChain(new TreeSet<SqlGenerator>());
         final Sql[] addGeometryColumnSql = generator.generateSql(addColumnStatement, database,
               emptyChain);
         list.addAll(Arrays.asList(addGeometryColumnSql));
      }
   }
   return list.toArray(new Sql[list.size()]);
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:23,代码来源:CreateSpatialTableGeneratorGeoDB.java

示例2: validate

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Override
public ValidationErrors validate(final AddColumnStatement statement,
      final Database database, final SqlGeneratorChain sqlGeneratorChain) {
   final ValidationErrors errors = new ValidationErrors();
   final LiquibaseDataType dataType = DataTypeFactory.getInstance()
         .fromDescription(statement.getColumnType(), database);

   // Ensure that the SRID parameter is provided.
   if (dataType instanceof GeometryType) {
      final GeometryType geometryType = (GeometryType) dataType;
      if (geometryType.getSRID() == null) {
         errors.addError("The SRID parameter is required on the geometry type");
      }
   }
   final ValidationErrors chainErrors = sqlGeneratorChain.validate(
         statement, database);
   if (chainErrors != null) {
      errors.addAll(chainErrors);
   }
   return errors;
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:22,代码来源:AddGeometryColumnGeneratorGeoDB.java

示例3: timestampAliases

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Test
public void timestampAliases() throws Exception {
    LiquibaseDataType liquibaseDataType = DataTypeFactory.getInstance().fromDescription("datetime", snowflakeDatabase);
    String[] aliases = liquibaseDataType.getAliases();
    assertEquals(2, aliases.length);
    assertThat(aliases, hasItemInArray("datetime"));
    assertThat(aliases, hasItemInArray("java.sql.Types.DATETIME"));
}
 
开发者ID:CDKGlobal,项目名称:liquibase-snowflake,代码行数:9,代码来源:TimestampNTZTypeTest.java

示例4: validate

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Override
public ValidationErrors validate(final CreateTableStatement statement, final Database database,
      final SqlGeneratorChain sqlGeneratorChain) {
   final ValidationErrors validationErrors = new ValidationErrors();
   for (final Entry<String, LiquibaseDataType> entry : statement.getColumnTypes().entrySet()) {
      if (entry.getValue() instanceof GeometryType) {
         final GeometryType geometryType = (GeometryType) entry.getValue();
         if (geometryType.getSRID() == null) {
            validationErrors.addError("The SRID parameter is required on the geometry type");
         }
      }
   }
   validationErrors.addAll(sqlGeneratorChain.validate(statement, database));
   return validationErrors;
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:16,代码来源:CreateSpatialTableGeneratorGeoDB.java

示例5: generateSql

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
/**
 * @see liquibase.sqlgenerator.core.AddDefaultValueGenerator#generateSql(liquibase.statement.core.AddDefaultValueStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain)
 */
@Override
public Sql[] generateSql(AddDefaultValueStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
	Object defaultValue = statement.getDefaultValue();
       LiquibaseDataType defaultValueType = DataTypeFactory.getInstance().fromObject(defaultValue, database);
	return new Sql[]{
			new UnparsedSql("ALTER TABLE " + database.escapeTableName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName())
					+ " ADD  "
                       + database.escapeColumnName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName())
                       + " DEFAULT "
					+ (defaultValueType instanceof DateTimeType ?" TIMESTAMP ":(defaultValueType instanceof DateType ?" DATE ":(defaultValueType instanceof TimeType ?" TIME ":"")))
					+ defaultValueType.objectToSql(defaultValue, database),
					new Column().setRelation(new Table().setName(statement.getTableName()).setSchema(new Schema(statement.getCatalogName(), statement.getSchemaName())).setName(statement.getColumnName())))
	};
}
 
开发者ID:liquibase,项目名称:liquibase-teradata,代码行数:18,代码来源:AddDefaultValueGeneratorTeradata.java

示例6: isAutoIncrement

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
/**
 * has <code>dataType</code> auto increment property ?
 */
   //FIXME remove if will be accepted  https://github.com/liquibase/liquibase/pull/247
private boolean isAutoIncrement(LiquibaseDataType dataType) {
	boolean retVal = false;
	String methodName = "isAutoIncrement";
	Method[] methods = dataType.getClass().getMethods();
	for (Method method : methods) {
		if (method.getName().equals(methodName)
				&& method.getParameterTypes().length == 0) {
			retVal = true;
			break;
		}
	}
	return retVal;
}
 
开发者ID:exteso,项目名称:parkingfriends,代码行数:18,代码来源:JHipsterTableSnapshotGenerator.java

示例7: datetimeConvertsToTimestamp

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Test
public void datetimeConvertsToTimestamp() throws Exception {
    LiquibaseDataType liquibaseDataType = DataTypeFactory.getInstance().fromDescription("datetime", snowflakeDatabase);
    assertEquals("liquibase.ext.snowflake.datatype.TimestampNTZType", liquibaseDataType.getClass().getName());
}
 
开发者ID:CDKGlobal,项目名称:liquibase-snowflake,代码行数:6,代码来源:TimestampNTZTypeTest.java

示例8: generateSql

import liquibase.datatype.LiquibaseDataType; //导入依赖的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

示例9: generateSql

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Override
public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
	String alterTable = "ALTER TABLE " + database.escapeTableName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName()) +
               " ADD " +
               database.escapeColumnName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName())
               + " " + DataTypeFactory.getInstance().fromDescription(statement.getColumnType() + (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database).toDatabaseDataType(database);

	if (statement.isAutoIncrement() && database.supportsAutoIncrement()) {
		alterTable += " " + database.getAutoIncrementClause(null, null);
	}

	if (!statement.isNullable()) {
		alterTable += " NOT NULL";
	} else {
		if (database instanceof SybaseDatabase || database instanceof SybaseASADatabase) {
			alterTable += " NULL";
		}
	}

	if (statement.getDefaultValue()!=null){
		alterTable += " DEFAULT ";
		LiquibaseDataType defaultValueType = DataTypeFactory.getInstance().fromDescription(statement.getColumnType() + (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database);
		alterTable +=(defaultValueType instanceof DateTimeType ?" TIMESTAMP ":(defaultValueType instanceof DateType ?" DATE ":(defaultValueType instanceof TimeType ?" TIME ":"")));
		alterTable += DataTypeFactory.getInstance().fromObject(statement.getDefaultValue(), database).objectToSql(statement.getDefaultValue(), database);
	}

	List<Sql> returnSql = new ArrayList<Sql>();
	returnSql.add(new UnparsedSql(alterTable, new Column().setRelation(new Table().setName(statement.getTableName()).setSchema(new Schema(statement.getCatalogName(), statement.getSchemaName())).setName(statement.getColumnName()))));

	if (statement.isPrimaryKey()) {
		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddPrimaryKeyStatement(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName(), null) , database)));
	}

	if (statement.isUnique()) {
		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddUniqueConstraintStatement(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), new ColumnConfig[] { new ColumnConfig().setName(statement.getColumnName())}, null) , database)));
	}
	//	if (statement.getDefaultValue()!=null)
	//		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddDefaultValueStatement(statement.getSchemaName(), statement.getTableName(), statement.getColumnName(), statement.getColumnType(), statement.getDefaultValue()) , database)));

	addForeignKeyStatements(statement, database, returnSql);

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

示例10: snapshotObject

import liquibase.datatype.LiquibaseDataType; //导入依赖的package包/类
@Override
protected DatabaseObject snapshotObject(DatabaseObject example, DatabaseSnapshot snapshot) throws DatabaseException, InvalidExampleException {
    HibernateDatabase database = (HibernateDatabase) snapshot.getDatabase();
    Configuration cfg = database.getConfiguration();

    Dialect dialect = database.getDialect();
    Mapping mapping = cfg.buildMapping();

    org.hibernate.mapping.Table hibernateTable = findHibernateTable(example, snapshot);
    if (hibernateTable == null) {
        return null;
    }

    Table table = new Table().setName(hibernateTable.getName());
    PrimaryKey primaryKey = null;
    int pkColumnPosition = 0;
    LOG.info("Found table " + table.getName());

    table.setSchema(example.getSchema());

    Iterator columnIterator = hibernateTable.getColumnIterator();
    while (columnIterator.hasNext()) {
        org.hibernate.mapping.Column hibernateColumn = (org.hibernate.mapping.Column) columnIterator.next();
        Column column = new Column();
        column.setName(hibernateColumn.getName());

        String hibernateType = hibernateColumn.getSqlType(dialect, mapping);
        DataType dataType = toDataType(hibernateType, hibernateColumn.getSqlTypeCode());
        if (dataType == null) {
            throw new DatabaseException("Unable to find column data type for column " + hibernateColumn.getName());
        }

        column.setType(dataType);
        LOG.info("Found column " + column.getName() + " " + column.getType().toString());

        column.setRemarks(hibernateColumn.getComment());
        column.setDefaultValue(hibernateColumn.getDefaultValue());
        column.setNullable(hibernateColumn.isNullable());
        column.setCertainDataType(false);

        org.hibernate.mapping.PrimaryKey hibernatePrimaryKey = hibernateTable.getPrimaryKey();
        if (hibernatePrimaryKey != null) {
            boolean isPrimaryKeyColumn = false;
            //noinspection unchecked
            for (org.hibernate.mapping.Column pkColumn : (List<org.hibernate.mapping.Column>) hibernatePrimaryKey.getColumns()) {
                if (pkColumn.getName().equals(hibernateColumn.getName())) {
                    isPrimaryKeyColumn = true;
                    break;
                }
            }

            if (isPrimaryKeyColumn) {
                if (primaryKey == null) {
                    primaryKey = new PrimaryKey();
                    primaryKey.setName(hibernatePrimaryKey.getName());
                }
                primaryKey.addColumnName(pkColumnPosition++, column.getName());

                LiquibaseDataType liquibaseDataType = DataTypeFactory
			.getInstance().from(column.getType());
	// only columns types supporting auto increment -
	// DataTypeFactory
	if (isAutoIncrement(liquibaseDataType)) {

		if (dialect.getNativeIdentifierGeneratorClass().equals(
				IdentityGenerator.class)) {
			column.setAutoIncrementInformation(new Column.AutoIncrementInformation());
		}
	}
            }
        }
        column.setRelation(table);

        table.setPrimaryKey(primaryKey);
        table.getColumns().add(column);

    }

    return table;
}
 
开发者ID:exteso,项目名称:parkingfriends,代码行数:81,代码来源:JHipsterTableSnapshotGenerator.java


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