12

次の形式で dbunit が取り込めるデータベース データを簡単にインポート/エクスポートするにはどうすればよいですか?

<dataset>
   <tablea cola="" colb="" />
   <tableb colc="" cold="" />
</dataset>

単体テスト用にデータベースから既存のデータをエクスポートする方法を見つけたいと思います。

4

2 に答える 2

17

青、これにより、必要な形式でデータをエクスポートできます。

public class DatabaseExportSample {
    public static void main(String[] args) throws Exception {
        // database connection
        Class driverClass = Class.forName("org.hsqldb.jdbcDriver");
        Connection jdbcConnection = DriverManager.getConnection(
                "jdbc:hsqldb:sample", "sa", "");
        IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);

        // partial database export
        QueryDataSet partialDataSet = new QueryDataSet(connection);
        partialDataSet.addTable("FOO", "SELECT * FROM TABLE WHERE COL='VALUE'");
        partialDataSet.addTable("BAR");
        FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial.xml"));

        // full database export
        IDataSet fullDataSet = connection.createDataSet();
        FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml"));

        // 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, "X" );
        IDataSet depDataSet = connection.createDataSet( depTableNames );
        FlatXmlDataSet.write(depDataSet, new FileOutputStream("dependents.xml"));
    }
}
于 2013-01-22T02:47:52.997 に答える
6

エクスポートは既に回答されています。答えを完成させるために、これはデータセットをデータベースに インポートする方法です。connectionタイプIDatabaseConnectionです。Mark Robinson による以前の回答 (エクスポートに関する) には、データベース接続を作成する方法のコードが含まれています。

FlatXmlDataSet dataSet = new FlatXmlDataSet(new FlatXmlProducer(new InputSource(new FileInputStream("dataset.xml"))));
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
于 2013-04-19T10:04:58.487 に答える