S2DaoTestCaseでExcelからDBへデータを投入
昨日のエントリで書いたやり方以上に簡単な方法があったのでこちらで実装。
S2DaoのS2DaoTestCaseを使って
import org.seasar.dao.unit.S2DaoTestCase; public class Xls2DB extends S2DaoTestCase { /* * @see TestCase#setUp() */ @Override protected void setUp() throws Exception { include("j2ee.dicon"); } /** * XLSからDBへ <br> * <p> */ public void testSave() throws Exception { readXlsWriteDb("quiz.xls"); } }
みたいに書く。通常のテストではロールバックさせるのでテストメソッド名をtestHogeTxみたいに書くけど今回はデータ投入なのでTxはつけない。
で、実行したら
java.lang.SecurityException: class "junit.framework.JUnit4TestCaseFacade"'s signer information does not match signer information of other classes in the same package
のエラー発生。調べたらmavenのdependencyに入っていたjunitが3.8.2だったorz。
4.1にして実行したところ成功。
Core2T5500のメモリ1Gマシンで5000件投入するのに大体10分。パフォーマンスも数千件程度ならこれで十分っぽい。
あとは投入するExcelのセル設定は「一般」にしておいたほうが無難(「数値」でやったらS2DaoTestCaseに日付として解釈された)