PostgreSQL COPY Helper を作りました

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を高速化したいというときにぜひお試しください。