EzJDBCで取得する列を限定する!


以下のエントリを見つけたので、EzJDBCの場合を書いてみる。。。

S2JDBCの流れるインターフェースで検索すると、すべてのカラムが取得されます。嫌ならsqlファイルに書けばいいじゃん。って話ですが、せっかくのタイプセーフな検索が意味なし!
悩んだ末、lazyを使えばいいのかとたどりつきました。
中略...

S2JDBCで取得する列を限定する! - メモ

EzJDBCで取得する列を限定方法は、以下の2通りになる…


1.結果を格納するEntityに存在するプロパティ(キャメル記法)と同名列のみ取得する列にする。

取得したい項目のみプロパティーを設定

   public class Customer2 {
      public long id;
      public String name;
   }

上記Entityに照会結果を格納するソース

// テーブル情報インスタンスを生成
CUSTOMER _CUS = new CUSTOMER();
// CUSTOMERテーブルを照会
List<Customer2> result = new EzJDBC().from(_CUS).find(Customer2.class);

これでCUSTOMERテーブルのIDとNAME列のみ取得する事になる。。。

2.EzJDBCのincludesメソッドで、取得する列を指定する。

CUSTOMERテーブルの全列のプロパティをもつEntity

   public class Customer {
      public long id;
      public String name;
      public String telNo;
      public String mailAddress;
      ...
   }

上記Entityに照会結果を格納するソース

// テーブル情報インスタンスを生成
CUSTOMER _CUS = new CUSTOMER();
// CUSTOMERテーブルを照会
List<Customer> result = new EzJDBC().from(_CUS)
                .includes(_CUS.NAME,_CUS.TEL_NO).find(Customer.class);

これでCUSTOMERテーブルのNAMEとTEL_NO列のみ取得する事になる。。。

追記
ちなみにEzJDBCのexcludesメソッドを利用すれば、取得しない項目を設定することも出来ます^^