DBUnitを使用してエクセルのデータを登録する
DBUnitを使用してエクセルのデータを登録するものを書いてみたとので記事に。
開発データやテストデータの投入をINSERT文をかかずにやりたいなと思ったのがきっかけです。
GitHub(やり始めでいろいろ汚いですが。)
環境的なこと
以下の環境で試しています。
- Postgres
- Gradle
内容
内容を抜粋すると以下という感じ。
・gradle.build (implementionとかruntimeOnlyとかいまいちな気がするがとりあえず)
implementation group: 'org.dbunit', name: 'dbunit', version: '2.6.0' runtimeOnly 'org.postgresql:postgresql'
・Java
いたってシンプルですが、ファイルを開き、DBに接続して、DBUnitのメソッドをたたく感じです。
public static void main(String[] args) throws Exception { // ファイルオープン String PATH = "C:\\temp\\import_test.xlsx"; Path path = Paths.get(PATH); File f = path.toFile(); // DB接続情報 String url = "jdbc:postgresql://localhost:154322/postgres"; String user = "postgres"; String password = "postgres"; try (Connection conn = DriverManager.getConnection(url, user, password);) { try { IDatabaseConnection dbconn = new DatabaseConnection(conn); IDataSet dataset = new XlsDataSet(f); // データの全削除 DatabaseOperation.DELETE_ALL.execute(dbconn, dataset); // データの挿入 DatabaseOperation.INSERT.execute(dbconn, dataset); System.out.println("完了"); } catch (Exception e) { conn.rollback(); // ここでは、connはクローズ済みなので例外がthrowされる! } } }