dbunitng (0.6) | 2008-10-02 16:31 |
DBに接続して、任意のテーブルあるいは全テーブルをDbUnitの形式でファイルに出力するユーティリティクラスを作りました。
org.dbunitng.data.TestDataFileMakerクラスです。 使い方は簡単です。
コンストラクタにJDBC接続に必要な情報を渡します。スキーマは特に必要なければnullを渡してください。
メソッドは2つあります。
特定のテーブルだけ出力したい場合extractTables()を、全テーブルを出力する場合はextractAllTables()を呼び出してください。
引数は、targetDirectoryにファイルを出力するディレクトリを渡してください。
存在していない場合はディレクトリを作成して出力します。
tableNamesはテーブル名の配列です。
FileTypeはEnumで、XML、EXCEL、CSVから選択してください。この形式でファイルを出力します。
たとえば、こんなテーブルがあるとします。
こういうコードでファイルに出力できます。
- mysql> select = from dept;
- +--------+------------+----------+
- | DEPTNO | DNAME | LOC |
- +--------+------------+----------+
- | 10 | ACCOUNTING | NEW YORK |
- | 20 | RESEARCH | DALLAS |
- 以下省略
- mysql> select = from emp;
- +-------+--------+-----------+------+------------+---------+---------+--------+
- | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
- +-------+--------+-----------+------+------------+---------+---------+--------+
- | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | 10.00 | 20 |
- | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
- 以下省略
するとtemp/xml/specifiedディレクトリにファイルを出力します。
内容もきちんとDbUnit形式です。
同様に、Excel形式でもCSV形式でも出力できます。
CSVであれば「table * ordering.txt」も出力します。