EzJDBC取得する列を限定する方法/selectメソッド始めました^^
以前「EzJDBCで取得する列を限定する!」で説明した通り、EzJDBCで取得する列を限定方法はEzJDBC#includesメソッドを利用していましたが、includesメソッドをやめて、EzJDBC#select()メソッドで取得する列名を限定するようにしました。
下記にサンプルコードを見てください...よりSQLっぽくなりましたね(^^)
私はココにも書いた通りO/RマッパーはSQLを意識して良いと思っているのでEzJDBCの利用方法はSQLに近づく方が良いと考えてます。
CUSTOMERテーブルとORDERテーブルを結合し、全項目を取得する場合は以下のコードなります。
// メインテーブル情報インスタンスを生成します。
CUSTOMER CUS = new CUSTOMER();
// CUSTOMERテーブルとORDERテーブルを結合しデータを取得します。
Listlist = 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テーブルを結合しデータを取得します。
Listlist = 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メソッドはそのまま残ります^^