Top / Java / Ant / DBをExcelにExportするAntタスク

DBUnit というDB用のUnitテストツールがあるのですが、これにはDBをXML形式やExcel形式でExportする機能があります。またDBUnitにはAntタスクも付属していて、XML形式でExportするAntタスクなどがあります。

さてこのDBUnitにはExcelにExportするAntタスクがなかったので、作ってみました。

ダウンロード

インストール

前述の通り、ExcelにExportする機能自体はDBUnitを使用しています。またDBUnitはJakartaのPOI(ExcelをJavaで扱うAPI)を使用しているためPOIも必要です。具体的には

dbunit-2.1.jar
poi-2.5.1-final-20040804.jar
poi-contrib-2.5.1-final-20040804.jar
poi-scratchpad-2.5.1-final-20040804.jar

が必要です。これらのライブラリは

よりダウンロードできますので、ダウンロードしAnt内でパスを通してください。もちろん各DBのJDBCドライバのjarも必要です。

サンプル

ソースコード

/*******************************************************************************
 * Copyright (c) 2006 Masatomi KINO.
 * All rights reserved. 
 * $Id: ExcelExportTask.java,v 1.1 2006/12/17 07:02:58 cvsuser Exp $
 *******************************************************************************/
//作成日: 2006/12/17
package nu.mine.kino.dbunit.ant;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITableIterator;
import org.dbunit.dataset.excel.XlsDataSet;

/**
 * @author Masatomi KINO
 * @version $Revision: 1.1 $
 */
public class ExcelExportTask extends Task {
  private String driver;
  private String url;
  private String userId;
  private String password;
  private String schema;
  private Export export;
  public Export createExport() {
    if (export == null) {
      export = new Export();
    }
    return export;
  }

  public void execute() throws BuildException {
    IDatabaseConnection con = null;
    try {
      con = getConnection();
      IDataSet dataset = con.createDataSet();
      ITableIterator iterator = dataset.iterator();
      System.out.println("-------------------");
      while (iterator.next()) {
        System.out.println(iterator.getTableMetaData().getTableName());
      }
      System.out.println("-------------------");
      XlsDataSet.write(dataset, new FileOutputStream(export.getDest()));
    } catch (Exception e) {
      e.printStackTrace();
      throw new BuildException(e);
    } finally {
      try {
        if (con != null) {
          con.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }

  private IDatabaseConnection getConnection() throws Exception {
    System.out.println("driver   : " + driver);
    System.out.println("url    : " + url);
    System.out.println("userId   : " + userId);
    System.out.println("password : " + password);
    System.out.println("schema   : " + schema);
    System.out.println("export   : " + new File(export.getDest()).getAbsolutePath());
    Class driverClass = Class.forName(driver);
    Connection connection = DriverManager.getConnection(url, userId,
        password);
    return new DatabaseConnection(connection, schema);
  }
  以下setterなので省略
}

この記事は

選択肢 投票
おもしろかった 9  
そうでもない 1  

Top / Java / Ant / DBをExcelにExportするAntタスク

現在のアクセス:20233


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS