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 アノテーションを付ければうまいことやってくれます。