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>>"); } } |
投稿 >