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