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();
}