2015-07-08 5 views
0

Официальный учебник dbunit уже дает хорошее example для экспорта набора данных из единой схемы базы данных.
Есть ли способ экспортировать разные таблицы из разных схем в один набор данных (скажем, Table_A из schema_A, Table_B из schema_B)?
Экспортируемый набор данных, при записи в файл XML, будет выглядеть так:dbunit/unitils: как экспортировать набор данных с несколькими схемами?

<?xml version='1.0' encoding='UTF-8'?> 
<dataset schema:schemaA schema:schemaB> 
    <schemaA:tableA ..... /> 
    <schemaA:tableA ..... /> 
    <schemaB:tableB ..... /> 
</dataset> 
+0

не могли бы вы предоставить эту ссылку на хороший пример для экспорта набора данных из си ngle database schema? – bastiat

ответ

2

Я только что получил ту же проблему и исправить ее необходимо установить свойства FEATURE_QUALIFIED_TABLE_NAMES:

ниже тот же пример кода с изменением (я удалил некоторую часть кода, потому что мне не нужен полный экспорт базы данных):

public static void main(String[] args) throws Exception 
    { 
     // database connection 
     Class driverClass = Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection jdbcConnection = DriverManager.getConnection(
       "jdbc:sqlserver://<server>:1433;DatabaseName=<dbName>", "<usr>", "<passwd>"); 
     IDatabaseConnection connection = new DatabaseConnection(jdbcConnection); 

     Properties props = new Properties(); 
     props.put(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, "true"); 
     connection.getConfig().setPropertiesByString(props);   


     // dependent tables database export: export table X and all tables that 
     // have a PK which is a FK on X, in the right order for insertion 
     String[] depTableNames = TablesDependencyHelper.getAllDependentTables(connection, "vehicle.Vehicle_Series_Model_SMA"); 
     IDataSet depDataset = connection.createDataSet(depTableNames); 
     FlatXmlDataSet.write(depDataset, new FileOutputStream("vehicle.Vehicle_Series_Model_SMA.xml"));   

    }