Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Locked History Actions

Butterfly_Persistence/IJdbcDao

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");