ObjectAPI形式でinsert文やupdate文でモデルを指定する

前回はselectの結果を任意のモデルに変換する処理をやってましたが、当然insertやupdateでもできます。

Dao006.java
public interface Dao006 {
	@SqlQuery("select name from table001 where id = :id")
	String findNameById(@Bind("id") int id);

	@SqlUpdate("insert into table001 (id, name) values (:id, :name)")
	void insert(@Bind("id") int id, @Bind("name") String name);

	@SqlUpdate("update table001 set name = :name where id = :id")
	int update(@BindBean Table001 m);
}
Sample012.java
public static void main(String[] args) {
	String url = "jdbc:postgresql://192.168.52.128/jdbi";
	DBI dbi = new DBI(url, "jdbi_user", "jdbi_pass");

	Dao006 dao006 = dbi.onDemand(Dao006.class);

	dao006.insert(100, "dao006 insert");
	System.out.println("id = 100 : " + dao006.findNameById(100));

	Table001 table001 = new Table001(100, "dao006 update");
	dao006.update(table001);
	System.out.println("id = 100 : " + dao006.findNameById(100));
}

BindBean アノテーションを付ければうまいことやってくれます。