|
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なので省略
}
この記事は
現在のアクセス:21039 |