DBUnitを使う時にはDatatypeFactoryを指定しよう
DBUnitを使ってDBのデータをExcelファイルに落とすとき、IDatabaseConnectionを取得するタイミングでデータタイプファクトリーを指定します。指定しなくても動くので、指定していないコードを多く見かけるんだけど。
データタイプファクトリーの指定方法は下記のような感じです。
IDatabaseConnectionを返すメソッドの中身の例:
Class.forName(driverName); Connection conn = DriverManager.getConnection(connectionUrl, user, passwd); IDatabaseConnection retConn = (new DatabaseConnection(conn, schema)); DatabaseConfig config = retConn.getConfig(); config.setProperty( DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new Oracle10DataTypeFactory()); return retConn;
ここではOracle10用に指定。
Oracleの場合、指定しないとDate型の時刻情報を切り捨てられてしまいます。