import java.io.FileOutputStream; import org.dbunit.JdbcDatabaseTester; import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.excel.XlsDataSet; //import org.dbunit.dataset.xml.FlatXmlDataSet; public class TablesDumper { /** * テーブルのダンプをXls(or XML)ファイルに出力する。 * * @param args * 使用しない * @throws Exception データベースもしくはファイル操作で例外が発生したとき */ public static void main(String[] args) throws Exception { JdbcDatabaseTester tester = new JdbcDatabaseTester( "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/データベース名", "ユーザー名", "パスワード"); IDatabaseConnection connection = tester.getConnection(); String[] tableNamesToDump = new String[] { "DEPT", "EMP" }; IDataSet target = connection.createDataSet(tableNamesToDump); //FileOutputStream stream = new FileOutputStream("dept-emp.xml"); FileOutputStream stream = new FileOutputStream("dept-emp.xls"); //FlatXmlDataSet.write(target, stream); XlsDataSet.write(target, stream); } }
実行すると、dept-emp.xlsを作成する。
1シート1テーブルの形式になる。
XML形式で出力する場合はコメントを外し、代わりにExcel関連のコードを消す。
XMLで出力すると以下のようになる。
<?xml version='1.0' encoding='UTF-8'?> <dataset> <DEPT DEPTNO="10" DNAME="ACCOUNTING" LOC="NEW YORK"/> <DEPT DEPTNO="20" DNAME="RESEARCH" LOC="DALLAS"/> <DEPT DEPTNO="30" DNAME="SALES" LOC="CHICAGO"/> <DEPT DEPTNO="40" DNAME="OPERATIONS" LOC="BOSTON"/> <EMP EMPNO="7369" ENAME="SMITH" JOB="CLERK" MGR="7902" HIREDATE="1980-12-17" SAL="800.0" DEPTNO="20"/> <EMP EMPNO="7499" ENAME="ALLEN" JOB="SALESMAN" MGR="7698" HIREDATE="1981-02-20" SAL="1600.0" COMM="300.0" DEPTNO="30"/> <EMP EMPNO="7521" ENAME="WARD" JOB="SALESMAN" MGR="7698" HIREDATE="1981-02-22" SAL="1250.0" COMM="500.0" DEPTNO="30"/> <EMP EMPNO="7566" ENAME="JONES" JOB="MANAGER" MGR="7839" HIREDATE="1981-04-02" SAL="2975.0" DEPTNO="20"/> <EMP EMPNO="7654" ENAME="MARTIN" JOB="SALESMAN" MGR="7698" HIREDATE="1981-09-28" SAL="1250.0" COMM="1400.0" DEPTNO="30"/> <EMP EMPNO="7698" ENAME="BLAKE" JOB="MANAGER" MGR="7839" HIREDATE="1981-03-01" SAL="2850.0" DEPTNO="30"/> <EMP EMPNO="7782" ENAME="CLARK" JOB="MANAGER" MGR="7839" HIREDATE="1981-01-09" SAL="2450.0" DEPTNO="10"/> <EMP EMPNO="7788" ENAME="SCOTT" JOB="ANALYST" MGR="7566" HIREDATE="1982-12-09" SAL="3000.0" DEPTNO="20"/> <EMP EMPNO="7839" ENAME="KING" JOB="PRESIDENT" HIREDATE="1981-11-17" SAL="5000.0" DEPTNO="10"/> <EMP EMPNO="7844" ENAME="TURNER" JOB="SALESMAN" MGR="7698" HIREDATE="1981-09-08" SAL="1500.0" COMM="0.0" DEPTNO="30"/> <EMP EMPNO="7876" ENAME="ADAMS" JOB="CLERK" MGR="7788" HIREDATE="1983-01-12" SAL="1100.0" DEPTNO="20"/> <EMP EMPNO="7900" ENAME="JAMES" JOB="CLERK" MGR="7698" HIREDATE="1981-12-03" SAL="950.0" DEPTNO="30"/> <EMP EMPNO="7902" ENAME="FORD" JOB="ANALYST" MGR="7566" HIREDATE="1981-12-03" SAL="3000.0" DEPTNO="20"/> <EMP EMPNO="7934" ENAME="MILLER" JOB="CLERK" MGR="7782" HIREDATE="1982-01-23" SAL="1300.0" DEPTNO="10"/> </dataset>