次の形式で dbunit が取り込めるデータベース データを簡単にインポート/エクスポートするにはどうすればよいですか?
<dataset>
<tablea cola="" colb="" />
<tableb colc="" cold="" />
</dataset>
単体テスト用にデータベースから既存のデータをエクスポートする方法を見つけたいと思います。
青、これにより、必要な形式でデータをエクスポートできます。
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"));
}
}
エクスポートは既に回答されています。答えを完成させるために、これはデータセットをデータベースに
インポートする方法です。connection
タイプIDatabaseConnection
です。Mark Robinson による以前の回答 (エクスポートに関する) には、データベース接続を作成する方法のコードが含まれています。
FlatXmlDataSet dataSet = new FlatXmlDataSet(new FlatXmlProducer(new InputSource(new FileInputStream("dataset.xml"))));
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);