PostgreSQLのCOPYコマンドをJavaで簡単に利用するためのライブラリとして、PostgreSQL COPY Helper を作りました。
登録したいデータの構造を表すクラスを定義しておいて、、
@Table("items") public class Item { @Column("id") private final int id; @Column("name") private final String name; public Item(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } }
CopyHelper.copyFrom
でそのオブジェクトの一覧を渡すだけです。
List<Item> items = generateItems();
CopyHelper.copyFrom(connection, items, Item.class);
COPYコマンドは、Batch INSERTと比べてもかなり(手元で測定したところ10倍くらい)高速なので、大量データのINSERTを高速化したいというときにぜひお試しください。