= IJdbcDao = オブジェクトマッピングを使用せず、SQLによる読込みや更新を行いたい場合にIJdbcDaoを用いる。 == Long値の読込み == なぜか、String値の読込み機能はない(readIdStringは別物)。おそらくLong値の読込みはprimary keyやcount(*)等の読込みに使用することを意図しているものと思われる。 {{{ String sql = "select id from persons where id=?"; Long id = daos.getJdbcDao().readLong(sql, 5); }}} == IResultSetProcessor == マニュアルにもあるようにIResultSetProcessorは冗長なところがあるかもしれない。以下のようにしてみる。 {{{ abstract class MyResultSetProcessor implements IResultSetProcessor { public void init(ResultSet result, IDaos daos) {} public Object getResult() { return null; } }; Connection conn = getConnection(); IDaos daos = persistenceManager.createDaos(conn); daos.getJdbcDao().read("select * from user", new MyResultSetProcessor() { public void process(ResultSet result, IDaos daos) { try { System.out.println("" + result.getInt(1) + ", " + result.getString(2)); } catch (SQLException ex) { throw new RuntimeException(ex); } } }); conn.close(); }}} これはIdbcDao内部で取得したResultSetについて、レコードポインタを進めながらそれぞれをユーザ側で処理させるというものである。 == 更新 == 単純に更新用SQLを発行する例。 {{{ String sql = "insert into persons(name) values(?)"; daos.getJdbcDao().update(sql, "John Doe"); }}}