EzJDBC取得する列を限定する方法/selectメソッド始めました^^


以前「EzJDBCで取得する列を限定する!」で説明した通り、EzJDBCで取得する列を限定方法はEzJDBC#includesメソッドを利用していましたが、includesメソッドをやめて、EzJDBC#select()メソッドで取得する列名を限定するようにしました。


下記にサンプルコードを見てください...よりSQLっぽくなりましたね(^^)
私はココにも書いた通りO/RマッパーはSQLを意識して良いと思っているのでEzJDBCの利用方法はSQLに近づく方が良いと考えてます。


CUSTOMERテーブルとORDERテーブルを結合し、全項目を取得する場合は以下のコードなります。

// メインテーブル情報インスタンスを生成します。
CUSTOMER CUS = new CUSTOMER();
// CUSTOMERテーブルとORDERテーブルを結合しデータを取得します。
List list = EzJDBC.select().from(CUS).join(CUS.ORD)
                     .where(CUS.name.like("takahashi%"))
                     .and(CUS.ORD.date.between(20090101, 20091231))
                     .orderBy(CUS.id.asc(), CUS.ORD.date.desc())
                     .find(Customer.class);

EzJDBC#selectメソッドは省略可能です

SQLの選択項目を指定する場合はEzJDBC#selectメソッドに取得項目名を設定します。

// メインテーブル情報インスタンスを生成します。
CUSTOMER CUS = new CUSTOMER();
// CUSTOMERテーブルとORDERテーブルを結合しデータを取得します。
List list = EzJDBC.select(CUS.All, CUS.ORD.date, CUS.ORD.no)
                     .from(CUS).join(CUS.ORD)
                     .where(CUS.name.like("takahashi%"))
                     .and(CUS.ORD.date.between(20090101, 20091231))
                     .orderBy(CUS.id.asc(), CUS.ORD.date.desc())
                     .find(Customer.class);

ちなみに「取得しない項目」を設定するEzJDBC#excludesメソッドはそのまま残ります^^