Blog

jdbcutils 1.1.0 を出した

jdbcutils の 1.1.0 が出ました。jdbcutils は JDBC を便利に使うためのユーティリティ集です。

今回追加になったのは JDBCUtils#executeQueryForBean() メソッドです。 以下のような形式で、Bean にマッピングできます。

List<Bean> beans = JDBCUtils.executeQueryForBean(connection,
                "SELECT * FROM bean ORDER BY id", Collections.emptyList(),
                Bean.class);

HashMap なりなんなりにマッピングすればいいという話ではありますが、Bean にマッピングすると IntelliJ IDEA で Freemarker を書いている時にメソッド名の補完が効くようになり、開発効率が向上するので Bean にマッピングしたほうがよい気がしています。 (Bean を定義する手間と Freemarker の方をコード見ないでサクサク書けるようになるメリットとのトレードオフで、サクサク書けることのメリットのほうが大きいと見ています)


ちなみに TinyORM は Teng と同様に extra column を扱えるので、一覧画面に他のテーブルの情報をちょっと混ぜ込みたい程度ならその機能を使ってもいいのであった。

つまり、以下のようなことができる。

List<Entry> entries = orm.searchBySQL(Entry.class, "SELECT blog.title blogTitle, entry.title title FROM entry INNER JOIN blog ON (blog.id=entry.blogId)", Collections.emptyList());
System.out.println(
    entries.map(e -> e.getExtraColumn('blogTitle') + " : " + entry.getTitle())
        .collect(Collectors.joining(", ")));

どれかのテーブルが主体になって一カラムだけ他のテーブルからJOINしたものを出したいなんてときにはこちらが便利。