Daoのサンプル
Dao001.close() というメソッドは何も実装を書いてないけど、宣言だけしておけばJDBIが勝手にリソースを解放する処理を注入してくれる。
ちなみにこの形式を「SQL Object API」と呼ぶそうです。ちなみに前回のように、生のSQLをそのまま実行するのが「Fluent API」だそうです。
Dao001.java
public interface Dao001 { @SqlUpdate("create table IF NOT EXISTS table001 (id int primary key, name varchar(100))") void createTable(); @SqlUpdate("insert into table001 (id, name) values ((select count(*)+1 from table001), :name)") void insert(@Bind("name") String name); @SqlUpdate("insert into table001 (id, name) values (:id, :name)") void insert(@Bind("id") int id, @Bind("name") String name); @SqlQuery("select name from table001 where id = :id") String findNameById(@Bind("id") int id); void close(); }
Sample001.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"); Dao001 dao = dbi.open(Dao001.class); dao.createTable(); dao.insert("Sample-Dao001-Name"); String name = dao.findNameById(1); System.out.println("name = " + name); dao.close(); }