投稿‎ > ‎

ExcelのNamesで指定したデータをDBにインポートする

posted Mar 15, 2016, 9:18 PM by Zhang Wenxu   [ updated Mar 22, 2016, 10:53 PM ]
dbunitは、エクスポートしたデータをそのままDBにインポート出来るが、通常テストデータを作成時に、1シート複数テーブルのデータを作成すると、便利である。
1シート、複数テーブルのデータを作成し、それにテーブルの名前でデータのNamesを定義し、DBへインポートする方法を紹介する。
各テーブルのデータフォーマットは、dbunitでエクスポートしたデータを同じ、1行目は、項目名とする。

package jp.btsol.dbunit;

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.Drivermanager;

import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import jp.btsol.dbunit.dataset.excel.RangeDataSet;
import org.dbunit.operation.DatabaseOperation;

public class ImportFromExcel{
    private static final String TEST_DATA_DIRECTORY = "d:/work/";
    private static final String DATA_FILE_NAME = "testData.xls";
    private static final String DRIVER_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";
    private static final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:XE";
    private static final String DATABASE_USER_NAME = "Scott";
    private static final String DATABASE_PASSWORD = "tigger";
    private static final String DATABASES_SCHEMA = DATABASE_USER_NAME;

    public static void man(String[] args) throws Exception {
        Class.forName(DRIER_CLASS_ANME);
        Connection jdbcConnection = DriverManager4.getConnection(DATABASE_URL, DATABASE_USER_NAME, DATABASSE_PASSWORD);
        IDatabaseConnection connection = new DatabaseConnection(jdbcConnection, DATABASE_SCHEMA);
        System.out.println("<<Begin Importing>>");
        IDataSet partalDataSet = new RangeDataSet(new FileInputStream(new File(TEST_DIRECTORY + DATA_FILE_NAME)));
        DatabaseOperation.CLEAN_INSERT.execute(connection, partialDataSet);
        System.out.println("<<Finish Import>>");
    }
}

Comments