我們如何輕鬆導入/導出dbunit可以採用以下格式的數據庫數據?爲dbunit導入/導出xml
<dataset>
<tablea cola="" colb="" />
<tableb colc="" cold="" />
</dataset>
我想找到一種方法,從導出數據庫中現有的數據爲我的單元測試。
我們如何輕鬆導入/導出dbunit可以採用以下格式的數據庫數據?爲dbunit導入/導出xml
<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
。 馬克羅賓遜先前的答案(出口)包含如何創建數據庫連接的代碼。
FlatXmlDataSet dataSet = new FlatXmlDataSet(new FlatXmlProducer(new InputSource(new FileInputStream("dataset.xml"))));
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
第一行可以簡單地爲'FlatXmlDataSet dataSet = new FlatXmlDataSet(new File(「dataset.xml」),true);''或'FlatXmlDataSet dataSet = new FlatXmlDataSetBuilder()。build(new File(「dataset.xml」));' –
到目前爲止您嘗試過什麼?您是否閱讀過dbunit.org上的文檔? –
我手動或使用postgresql客戶端。只是想知道是否有更好的方法。 @MarkRobinson – blue123