*/
private static final String SCHEMA_PATTERN = "%";
private DataSource dataSource;
- private ITableFilterSimple tables;
private IDatabaseTester dbtester;
/**
/**
* Constructs the database utils.
* Before use, {@link #start()} must be called.
- * @param aDataSource Datasource.
- * @param aTables Tables to work with.
+ * @param aDataSource Datasource.
*/
- public DatabaseUtils(DataSource aDataSource, ITableFilterSimple aTables) {
+ public DatabaseUtils(DataSource aDataSource) {
dataSource = aDataSource;
- tables = aTables;
dbtester = new DataSourceDatabaseTester(dataSource);
connections = new ArrayList<IDatabaseConnection>();
}
LOG.log(Level.WARNING, "Could not close connection", e);
}
}
+ connections.clear();
}
- public IDatabaseTester createDbTester() throws Exception {
- return createDbTester(getTableNames(tables));
+ public IDatabaseTester createDbTester(ITableFilterSimple aTables) throws Exception {
+ return createDbTester(getTableNames(aTables));
}
public IDatabaseTester createDbTester(String[] aTables) throws Exception {
return dbtester;
}
- public void cleanDatabase() throws Exception {
- cleanDatabase(tables);
- }
-
public void executeOnTables(ITableFilterSimple aTables,
final TableSetOperation aOperation) throws Exception {
- final String[] tables = getTableNames(aTables);
+ final String[] tableNames = getTableNames(aTables);
executeInTransaction(new JdbcUnitOfWork<Void>() {
public Void execute(Connection aConnection) throws Exception {
- for (int i = tables.length - 1; i >= 0; i--) {
- aOperation.execute(tables[i]);
+ for (int i = tableNames.length - 1; i >= 0; i--) {
+ aOperation.execute(tableNames[i]);
}
return null;
}
public void cleanDatabase(ITableFilterSimple aSelection) throws Exception {
- final String[] tables = getTableNames(aSelection);
+ final String[] tableNames = getTableNames(aSelection);
executeInTransaction(new JdbcUnitOfWork<Void>() {
public Void execute(Connection aConnection) throws Exception {
IDatabaseConnection connection = new DatabaseConnection(
aConnection);
ITableFilter filter = new DatabaseSequenceFilter(connection,
- tables);
+ tableNames);
IDataSet dataset = new FilteredDataSet(filter, connection
- .createDataSet(tables));
+ .createDataSet(tableNames));
DatabaseOperation.DELETE_ALL.execute(connection, dataset);
return null;
}
connection.close();
}
}
-
- public String[] getTableNames() throws Exception {
- return getTableNames(tables);
- }
-
+
/**
* @throws SQLException
*/
Connection connection = dataSource.getConnection();
try {
- ResultSet tables = connection.getMetaData().getTables(null,
+ ResultSet tableNames = connection.getMetaData().getTables(null,
SCHEMA_PATTERN, "%", new String[] { "TABLE" });
- while (tables.next()) {
- String table = tables.getString("TABLE_NAME");
+ while (tableNames.next()) {
+ String table = tableNames.getString("TABLE_NAME");
if (aSelection.accept(table)) {
result.add(table);
}
}
}
- public void emptyTables() throws Exception {
- executeOnTables(tables, new TableSetOperation() {
- public void execute(String aTable) throws Exception {
- emptyTable(aTable);
- }
- });
- }
-
/**
* @return
* @throws SQLException
executeSql("delete from " + aTable);
}
- public void dropTables() throws Exception {
- dropTables(tables);
- }
-
public void dropTables(ITableFilterSimple aTables) throws Exception {
- final String[] tables = getTableNames(aTables);
+ final String[] tableNames = getTableNames(aTables);
String[] sortedTables = executeInTransaction(new JdbcUnitOfWork<String[]>() {
public String[] execute(Connection aConnection) throws Exception {
IDatabaseConnection connection = new DatabaseConnection(
aConnection);
ITableFilter filter = new DatabaseSequenceFilter(connection,
- tables);
+ tableNames);
IDataSet dataset = new FilteredDataSet(filter, connection
- .createDataSet(tables));
+ .createDataSet(tableNames));
return dataset.getTableNames();
}
});