EzJDBCで件数を取得する!vol.2


以下のエントリ「EzJDBCで件数を取得する!」に対して、内輪から同じ事を2度書くのは生産性が良くないとの指摘を受けたので補足説明を…

えーと、EzJDBCでは最後のメソッド(今回でいえばfindやcount)が呼び出された時にSQLを生成するので、同じ内容を何度も記述する必要はありません。
つまり以下の様に記述する事ができます。

 // テーブル情報インスタンスを生成
 CUSTOMER _CS = new CUSTOMER();
 // CUSTOMERテーブルを照会
 EzJDBC jdbc = new EzJDBC().from(_CS).where(_CS.NAME.likeBegin("TAKA"))
              .orderBy(_CS.AGE.desc(),_CS.NAME.asc())
              .limit(10).offset(101);
 // CUSTOMERテーブルより件数を取得
 long count = jdbc.count();
 // CUSTOMERテーブルを照会
 List<Customer> list = jdbc.find(Customer.class);

または、以下の様にパラメータ部を実行時にセットする事も可能です。

 String name = "TAKA";
  long offset = 101;
 // テーブル情報インスタンスを生成
 CUSTOMER _CS = new CUSTOMER();
 // CUSTOMERテーブルを照会
 EzJDBC jdbc = new EzJDBC().from(_CS)
              .orderBy(_CS.AGE.desc(),_CS.NAME.asc())
              .limit(10);
 // CUSTOMERテーブルより件数を取得
 long count = jdbc.where(_CS.NAME.likeBegin(name)).count();
 // CUSTOMERテーブルを照会
 List<Customer> list = jdbc.offset(offset).find(Customer.class);


自分では理解しているから当たり前の事でも、知らない人から見ると「当たり前ではない」のだから説明は丁寧にしないとだめですね…><

反省...orz