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


Java MySQLDatabase类代码示例

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


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

示例1: setup

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Before
public void setup() {
    System.setProperty(Configuration.LIQUIBASE_PASSWORD, "root");

    database = new MySQLDatabase();
    database.setLiquibaseSchemaName("testdb");
    DatabaseConnection conn = new MockDatabaseConnection("jdbc:mysql://[email protected]:3306/testdb",
            "[email protected]");
    database.setConnection(conn);
    ExecutorService.getInstance().setExecutor(database, new JdbcExecutor());

    PTOnlineSchemaChangeStatement.available = true;
    PTOnlineSchemaChangeStatement.perconaToolkitVersion = null;
    System.setProperty(Configuration.FAIL_IF_NO_PT, "false");
    System.setProperty(Configuration.NO_ALTER_SQL_DRY_MODE, "false");
    System.setProperty(Configuration.SKIP_CHANGES, "");

    setupChange(change);
}
 
开发者ID:adangel,项目名称:liquibase-percona,代码行数:20,代码来源:AbstractPerconaChangeTest.java

示例2: generateSql

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(SetTableRemarksStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
	String sql;
	String remarks = database.escapeStringForDatabase(statement.getRemarks());
	if (database instanceof MySQLDatabase) {
		sql = "ALTER TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " COMMENT = '" + remarks
				+ "'";
	} else {
		String command = "COMMENT";

		if (database instanceof DB2iDatabase) {
			command = "LABEL";
		}

		sql = command + " ON TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " IS '"
				+ database.escapeStringForDatabase(remarks) + "'";
	}

	return new Sql[] { new UnparsedSql(sql) };
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:20,代码来源:SetTableRemarksGenerator.java

示例3: generateStatements

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
 * Generates a {@link DropSpatialIndexStatement} followed by a {@link DropIndexStatement}, if
 * applicable. The first statement allows extra clean-up when dropping an index. The second
 * statement leverages the normal <code>DROP INDEX</code> logic.
 */
@Override
public SqlStatement[] generateStatements(final Database database) {
   final Collection<SqlStatement> statements = new ArrayList<SqlStatement>();
   // MySQL and PostgreSQL only need the normal DROP INDEX statement.
   if (!(database instanceof MySQLDatabase) && !(database instanceof PostgresDatabase)) {
      final DropSpatialIndexStatement dropSpatialIndex = new DropSpatialIndexStatement(
            this.indexName, this.catalogName, this.schemaName, this.tableName);
      statements.add(dropSpatialIndex);
   }

   // GeoDB doesn't use a tradition index structure so don't issue the normal DROP INDEX
   // statement.
   if (!(database instanceof DerbyDatabase) && !(database instanceof H2Database)) {
      final DropIndexStatement dropIndex = new DropIndexStatement(this.indexName,
            this.catalogName, this.schemaName, this.tableName, null);
      statements.add(dropIndex);
   }
   return statements.toArray(new SqlStatement[statements.size()]);
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:25,代码来源:DropSpatialIndexChange.java

示例4: testGenerateSql

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
 * Tests
 * {@link CreateSpatialIndexGeneratorMySQL#generateSql(CreateSpatialIndexStatement, Database, SqlGeneratorChain)}
 * with a variety of inputs.
 * 
 * @param statement
 */
@Test(dataProvider = "generateSqlTestData")
public void testGenerateSql(final CreateSpatialIndexStatement statement) {
   final CreateSpatialIndexGeneratorMySQL generator = new CreateSpatialIndexGeneratorMySQL();
   final Database database = new MySQLDatabase();
   final SqlGeneratorChain sqlGeneratorChain = mock(SqlGeneratorChain.class);
   final Sql[] result = generator.generateSql(statement, database, sqlGeneratorChain);
   assertNotNull(result);
   assertEquals(result.length, 1);
   final String sql = result[0].toSql();
   String pattern = "(?i)CREATE SPATIAL INDEX " + statement.getIndexName() + " ON ";
   if (statement.getTableCatalogName() != null) {
      pattern += statement.getTableCatalogName() + '.';
   } else if (statement.getTableSchemaName() != null) {
      pattern += statement.getTableSchemaName() + '.';
   }
   pattern += statement.getTableName() + "\\(" + statement.getColumns()[0] + "\\)";
   assertTrue(sql.matches(pattern), "'" + sql + "' does not match the pattern '" + pattern + "'");
   assertNotNull(result[0].getAffectedDatabaseObjects());
   assertTrue(result[0].getAffectedDatabaseObjects().size() > 1, result[0]
         .getAffectedDatabaseObjects().toString());
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:29,代码来源:CreateSpatialIndexGeneratorMySQLTest.java

示例5: setup

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Before
public void setup() {
    System.setProperty(Configuration.LIQUIBASE_PASSWORD, "root");

    database = new MySQLDatabase();
    database.setLiquibaseSchemaName("testdb");
    DatabaseConnection conn = new MockDatabaseConnection("jdbc:mysql://[email protected]:3306/testdb",
            "[email protected]");
    database.setConnection(conn);
}
 
开发者ID:adangel,项目名称:liquibase-percona,代码行数:11,代码来源:PTOnlineSchemaChangeStatementTest.java

示例6: toDatabaseDataType

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public DatabaseDataType toDatabaseDataType(Database database) {
   if (database instanceof DB2Database || database instanceof FirebirdDatabase) {
        return new DatabaseDataType("SMALLINT");
    } else if (database instanceof MSSQLDatabase) {
        return new DatabaseDataType("BIT");
    } else if (database instanceof MySQLDatabase) {
        if (originalDefinition.toLowerCase().startsWith("bit")) {
            return new DatabaseDataType("BIT", getParameters());
        }
        return new DatabaseDataType("BIT", 1);
    } else if (database instanceof OracleDatabase) {
        return new DatabaseDataType("NUMBER", 1);
    } else if (database instanceof SybaseASADatabase || database instanceof SybaseDatabase) {
        return new DatabaseDataType("BIT");
    } else if (database instanceof DerbyDatabase) {
        if (((DerbyDatabase) database).supportsBooleanDataType()) {
            return new DatabaseDataType("BOOLEAN");
        } else {
            return new DatabaseDataType("SMALLINT");
        }
    } else if (database instanceof SQLFireDatabase) {
    	return new DatabaseDataType("SMALLINT");
    } else if (database instanceof HsqlDatabase) {
        return new DatabaseDataType("BOOLEAN");
    }

    return super.toDatabaseDataType(database);
}
 
开发者ID:liquibase,项目名称:liquibase-sqlfire,代码行数:30,代码来源:BooleanType.java

示例7: isNumericBoolean

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
protected boolean isNumericBoolean(Database database) {
    if (database instanceof DerbyDatabase) {
        return !((DerbyDatabase) database).supportsBooleanDataType();
    }
    return database instanceof DB2Database
            || database instanceof FirebirdDatabase
            || database instanceof MSSQLDatabase
            || database instanceof MySQLDatabase
            || database instanceof OracleDatabase
            || database instanceof SQLFireDatabase
            || database instanceof SQLiteDatabase
            || database instanceof SybaseASADatabase
            || database instanceof SybaseDatabase;
}
 
开发者ID:liquibase,项目名称:liquibase-sqlfire,代码行数:15,代码来源:BooleanType.java

示例8: generateSql

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(TagDatabaseStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
	String liquibaseSchema = null;
	liquibaseSchema = database.getLiquibaseSchemaName();
    UpdateStatement updateStatement = new UpdateStatement(liquibaseSchema, database.getDatabaseChangeLogTableName());
    updateStatement.addNewColumnValue("TAG", statement.getTag());
    if (database instanceof MySQLDatabase) {
        try {
            long version = Long.parseLong(database.getDatabaseProductVersion().substring(0, 1));

            if (version < 5) {
                return new Sql[]{
                        new UnparsedSql("UPDATE "+database.escapeTableName(database.getLiquibaseSchemaName(), database.getDatabaseChangeLogTableName())+" C LEFT JOIN (SELECT MAX(DATEEXECUTED) as MAXDATE FROM (SELECT DATEEXECUTED FROM `DATABASECHANGELOG`) AS X) D ON C.DATEEXECUTED = D.MAXDATE SET C.TAG = '" + statement.getTag() + "' WHERE D.MAXDATE IS NOT NULL")
                };
            }

        } catch (Throwable e) {
            ; //assume it is version 5
        }
        updateStatement.setWhereClause("DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM (SELECT DATEEXECUTED FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + ") AS X)");
    } else if (database instanceof InformixDatabase) {
        return new Sql[]{
                new UnparsedSql("SELECT MAX(dateexecuted) max_date FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + " INTO TEMP max_date_temp WITH NO LOG"),
                new UnparsedSql("UPDATE "+database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName())+" SET TAG = '"+statement.getTag()+"' WHERE DATEEXECUTED = (SELECT max_date FROM max_date_temp);"),
                new UnparsedSql("DROP TABLE max_date_temp;")
        };
    } else {
        updateStatement.setWhereClause("DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM " + database.escapeTableName(liquibaseSchema, database.getDatabaseChangeLogTableName()) + ")");
    }

    return SqlGeneratorFactory.getInstance().generateSql(updateStatement, database);

}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:33,代码来源:TagDatabaseGenerator.java

示例9: generateSql

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public Sql[] generateSql(DropForeignKeyConstraintStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
    if (database instanceof MySQLDatabase || database instanceof MaxDBDatabase || database instanceof SybaseASADatabase) {
        return new Sql[] { new UnparsedSql("ALTER TABLE " + database.escapeTableName(statement.getBaseTableSchemaName(), statement.getBaseTableName()) + " DROP FOREIGN KEY " + database.escapeConstraintName(statement.getConstraintName())) };
    } else {
        return new Sql[] { new UnparsedSql("ALTER TABLE " + database.escapeTableName(statement.getBaseTableSchemaName(), statement.getBaseTableName()) + " DROP CONSTRAINT " + database.escapeConstraintName(statement.getConstraintName())) };
    }

}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:9,代码来源:DropForeignKeyConstraintGenerator.java

示例10: warn

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public Warnings warn(final Database database) {
   final Warnings warnings = new Warnings();
   if (!(database instanceof DerbyDatabase || database instanceof H2Database
         || database instanceof MySQLDatabase || database instanceof OracleDatabase || database instanceof PostgresDatabase)) {
      warnings.addWarning(database.getDatabaseProductName()
            + " is not supported by this extension");
   }
   return warnings;
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:11,代码来源:SpatialSupportedPrecondition.java

示例11: validate

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public ValidationErrors validate(final Database database) {
   final ValidationErrors errors = new ValidationErrors();
   if (!(database instanceof DerbyDatabase || database instanceof H2Database
         || database instanceof MySQLDatabase || database instanceof OracleDatabase || database instanceof PostgresDatabase)) {
      errors.addError(database.getDatabaseProductName() + " is not supported by this extension");
   }
   return errors;
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:10,代码来源:SpatialSupportedPrecondition.java

示例12: testSupports

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
/**
 * Tests {@link CreateSpatialIndexGeneratorMySQL#supports(CreateSpatialIndexStatement, Database)}
 */
@Test
public void testSupports() {
   final CreateSpatialIndexGeneratorMySQL generator = new CreateSpatialIndexGeneratorMySQL();
   final CreateSpatialIndexStatement statement = mock(CreateSpatialIndexStatement.class);
   assertTrue(generator.supports(statement, new MySQLDatabase()));
   assertFalse(generator.supports(statement, new H2Database()));
}
 
开发者ID:lonnyj,项目名称:liquibase-spatial,代码行数:11,代码来源:CreateSpatialIndexGeneratorMySQLTest.java

示例13: isValid

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public void isValid() throws Exception {
    super.isValid();
    AddColumnStatement addPKColumn = new AddColumnStatement(null, null, "table_name", "column_name", "column_type", null, new PrimaryKeyConstraint("pk_name"));

    assertFalse(generatorUnderTest.validate(addPKColumn, new HanaDBDatabase(), new MockSqlGeneratorChain()).hasErrors());
    assertTrue(generatorUnderTest.validate(addPKColumn, new H2Database(), new MockSqlGeneratorChain()).getErrorMessages().contains("Cannot add a primary key column"));

    // "catalog_name", "schema_name", "table_name", "column_name", "column_type" ...
    assertTrue(generatorUnderTest.validate(new AddColumnStatement(null, null, null, null, null, null, new AutoIncrementConstraint()), new MySQLDatabase(), new MockSqlGeneratorChain()).getErrorMessages().contains("Cannot add a non-primary key identity column"));
}
 
开发者ID:lbitonti,项目名称:liquibase-hana,代码行数:12,代码来源:AddColumnGeneratorHanaDBTest.java

示例14: generateStatements

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
public static SqlStatement[] generateStatements(PerconaChange change,
        Database database, SqlStatement[] originalStatements) {

    if (Boolean.FALSE.equals(change.getUsePercona()) || !Configuration.getDefaultOn()) {
        String changeSetId = "unknown changeset id";
        if (change instanceof Change) {
            ChangeSet changeSet = ((Change)change).getChangeSet();
            if (changeSet != null) {
                changeSetId = changeSet.getId() + ":" + changeSet.getAuthor();
            }
        }
        log.debug("Not using percona toolkit, because usePercona flag is false for " + changeSetId + ":" + change.toString());
        return originalStatements;
    }
    if (Configuration.skipChange(change.getChangeSkipName())) {
        maybeLog("Not using percona toolkit, because skipChange for "
                + change.getChangeSkipName() + " is active (property: " + Configuration.SKIP_CHANGES + ")!");
        return originalStatements;
    }

    List<SqlStatement> statements = new ArrayList<SqlStatement>(Arrays.asList(originalStatements));

    if (database instanceof MySQLDatabase) {
        if (PTOnlineSchemaChangeStatement.isAvailable()) {
            PTOnlineSchemaChangeStatement statement = new PTOnlineSchemaChangeStatement(
                    change.getTargetTableName(),
                    change.generateAlterStatement(database));

            if (isDryRun(database)) {
                CommentStatement commentStatement = new CommentStatement(statement.printCommand(database));

                if (Configuration.noAlterSqlDryMode()) {
                    statements.clear();
                    statements.add(0, commentStatement);
                } else {
                    statements.add(0, commentStatement);
                    statements.add(1, new CommentStatement("Instead of the following statements, pt-online-schema-change will be used"));
                }
            } else {
                statements.clear();
                statements.add(statement);
            }
        } else {
            if (Configuration.failIfNoPT()) {
                throw new RuntimeException("No percona toolkit found!");
            }
            maybeLog("Not using percona toolkit, because it is not available!");
        }
    }

    return statements.toArray(new SqlStatement[statements.size()]);
}
 
开发者ID:adangel,项目名称:liquibase-percona,代码行数:53,代码来源:PerconaChangeUtil.java

示例15: supports

import liquibase.database.core.MySQLDatabase; //导入依赖的package包/类
@Override
public boolean supports(InsertOrUpdateStatement statement, Database database) {
     return database instanceof MySQLDatabase;
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:5,代码来源:InsertOrUpdateGeneratorMySQL.java


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