【问题标题】:dbunit/unitils: how to export a multi-schema dataset?dbunit/unitils:如何导出多模式数据集?
【发布时间】:2015-09-26 08:24:27
【问题描述】:

dbunit 的官方教程已经给出了很好的example 用于从单个数据库模式中导出数据集。
有什么方法可以将不同架构中的不同表导出到一个数据集中(例如架构_A 中的表_A,架构_B 中的表_B)?
导出的数据集在写入 xml 文件时会是这样的:

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

【问题讨论】:

  • 能否提供此链接,指向从单个数据库模式导出数据集的好示例?

标签: dbunit unitils


【解决方案1】:

我刚刚遇到了同样的问题,要解决它,您需要设置 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"));          

    }

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多