DBUnit的使用之數據庫數據導出

笔者在本空间中《DBUnit的原理》提到DBUnit的原理,其第一步的任務是把數據庫裏的數據以XML的格式導出來;本來XML就是可以當數據庫使用的,相當於,將數據庫中設計好的測試數據先導出至XML數據庫暫存起來,以備在單元測試用例運行前將數據庫恢復至設計好的測試數據狀態。

本篇志在講述將設計好的測試數據導出的兩種方式。

一 腳本式導出
將下面這段代碼置於ANT腳本的某一任務腳本中:
<dbunitdriver="com.vendor.jdbc.Driver"  url="jdbc:vendor:mydatabase" userid="user"  password="password">
  <export dest="export.xml"/>
 </dbunit>
執行該項任務後就會將數據庫的當前全部數據導出至export.xml文件中。
二 編程式導出
此項方式是通過編碼的方式將當前數據庫的數據導出至XML文件。本文將以PostgreSQL數據庫舉例。
1. 獲取當前數據庫連接
     既然是要將當前數據庫的數據庫導出,第一步當然是獲取當前數據庫的Connection对象:
Connection conn= DriverManager.getConnection(“jdbc:postgresql://localhost:5432/databasename”,“username”,“pwd”);
2. 获取DataBaseConnection对象

  IDatabaseConnection  connection = new  DatabaseConnection ( conn );

//该对象是DBUnit对Connection对象的封装。
3.配置DBUnit的DatabaseConfig

   DatabaseConfig config= connection.getConfig();  config.setProperty(config.PROPERTY_DATATYPE_FACTORY,new PostgresqlDataTypeFactory()); 
4. 獲取數據集對象
QueryDataSet queryDS = new QueryDataSet(connection);
5. 將數據表添加至數據集對象
queryDS.addTable(tableName1);
queryDS.addTable(tableName2);
...
6. 生成XML數據文件
FlatXmlDataSet.write(queryDS, new FileOutputStream(scriptName));

------------------------------------
兩種方式的比較:
第一種方式:
優點:比較簡便,一次即可導出庫中所有的數據。
缺點:不靈活,不能針對單個表或某些表導出數據
第二種方式:
優點:比較靈活,可以針對某個表、某些表或全部數據表導出其對應的XML文件。在大部分單元測試中,某一個測試類只針對一兩個表進行測試,這個時候如果執行每一個單元測試用例前就將數據的全部的表恢復至已知狀態,顯而易見,我們做了無用功。
缺點:不如腳本式導出簡便,要寫一個帶主函數的類針對某些表分別導出測試數據。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值