業務データのページング処理思想
私は皆さんがデータソースからデータを手に入れた後、一般的にページング処理をしていると信じています.
言うまでもなく、現在のページのcurrpageとpagesizeをjspで(非同期であればquerybeanで直接受信したほうが良い)querybeanをControl、servletレイヤまたはactionに転送して処理し、service->daoを呼び出す方法でクエリーし、戻り結果をquerybeanに入れてjspインタフェースに転送してデータロードする必要がある.方法は大同小異だ.querybeanは次のとおりです.
このような考え:
1、ページ番号の境界を越えた操作はjspでスクリプトで判断しなければならない.
2.判断が成立しない場合は、要求を送信する必要はありません.
説明上、伝達querybeanについて説明します.
直接querybeanで受信すると、querybeanをserviceレイヤに直接転送してデータ処理を行い、getメソッドで値をとることができます.制御層の論理処理を減らすことができる
3、ダミー列rownumによるページング条件は制御層またはサービス層で実現しなければならない.sql文で直接計算によって実現することもある
本題に入って、私が学んだ思想を話します.
始める前に、ここでは主に第3の小さな点について考えを広げて説明します.
疑問を投げ出します:クエリー文の中でクエリーの偽列の区間数値を得なければならない以上、私は最初に点灯したquerybeanの中でまたこの2つのメンバー変数を含んで、しかも私が入ってきたのもquerybeanオブジェクトで、どうしてstartIndexをよく利用できませんか?//クエリーの開始下付き文字とendIndex;//クエリーの終了下書き?
放出コード
説明:
現在のページとページ表示データがページに入力されている以上、querybeanでgetStartIndex、getEndIndexの2つのgetメソッドを直接呼び出し、currPageを直接呼び出し、pageSizeのgetメソッドでこの2つの値を取得し、クエリーデータの実数と終了を得ることで、sql文でこの2つのメンバー変数の値を直接使用することができます.
また,jspのスクリプトに必要なページ境界操作の判断をここで直接解決することもできる.
注意:getStartIndex、getEndIndexメソッドではcountが使用されています.//総記録数、したがって、制御層でcountを取得するには、制御層で調整する必要があります.//合計レコード数は、setメソッドによってquerybeanオブジェクトに注入されます.
まとめ:
2つの思想のデータ処理の切り込み点が異なる.
また,リクエストの送信方法も完全に変更され,jspではスクリプトによりページ境界を越えた判断を行い,送信する必要のないリクエストをフィルタリングすることができる.
querybeanで処理すると、リクエストはいつも送信されますが、処理するデータが異なるだけです.
したがって,方法は柔軟で変化が多く,最良の方法はなく,より適切な方法しかない.
言うまでもなく、現在のページのcurrpageとpagesizeをjspで(非同期であればquerybeanで直接受信したほうが良い)querybeanをControl、servletレイヤまたはactionに転送して処理し、service->daoを呼び出す方法でクエリーし、戻り結果をquerybeanに入れてjspインタフェースに転送してデータロードする必要がある.方法は大同小異だ.querybeanは次のとおりです.
private int currPage=1;//
private int pageSize=5;//
private int count;//
private int startIndex;//
private int endIndex;//
private List list;//
このような考え:
1、ページ番号の境界を越えた操作はjspでスクリプトで判断しなければならない.
2.判断が成立しない場合は、要求を送信する必要はありません.
説明上、伝達querybeanについて説明します.
直接querybeanで受信すると、querybeanをserviceレイヤに直接転送してデータ処理を行い、getメソッドで値をとることができます.制御層の論理処理を減らすことができる
3、ダミー列rownumによるページング条件は制御層またはサービス層で実現しなければならない.sql文で直接計算によって実現することもある
本題に入って、私が学んだ思想を話します.
始める前に、ここでは主に第3の小さな点について考えを広げて説明します.
疑問を投げ出します:クエリー文の中でクエリーの偽列の区間数値を得なければならない以上、私は最初に点灯したquerybeanの中でまたこの2つのメンバー変数を含んで、しかも私が入ってきたのもquerybeanオブジェクトで、どうしてstartIndexをよく利用できませんか?//クエリーの開始下付き文字とendIndex;//クエリーの終了下書き?
放出コード
public int getStartIndex() {//
if(this.currPage>Math.ceil((this.count*1.0/this.pageSize))){//
this.currPage=(int) Math.ceil((this.count*1.0/this.pageSize));
}
if(this.currPage<=1){
this.currPage=1;// 1 1
}
startIndex=(this.currPage-1)*pageSize+1;// =( -1)* +1
return startIndex;
public int getEndIndex() {//
endIndex=this.getStartIndex()+pageSize-1;// = + -1
return endIndex;
}
説明:
現在のページとページ表示データがページに入力されている以上、querybeanでgetStartIndex、getEndIndexの2つのgetメソッドを直接呼び出し、currPageを直接呼び出し、pageSizeのgetメソッドでこの2つの値を取得し、クエリーデータの実数と終了を得ることで、sql文でこの2つのメンバー変数の値を直接使用することができます.
また,jspのスクリプトに必要なページ境界操作の判断をここで直接解決することもできる.
注意:getStartIndex、getEndIndexメソッドではcountが使用されています.//総記録数、したがって、制御層でcountを取得するには、制御層で調整する必要があります.//合計レコード数は、setメソッドによってquerybeanオブジェクトに注入されます.
まとめ:
2つの思想のデータ処理の切り込み点が異なる.
また,リクエストの送信方法も完全に変更され,jspではスクリプトによりページ境界を越えた判断を行い,送信する必要のないリクエストをフィルタリングすることができる.
querybeanで処理すると、リクエストはいつも送信されますが、処理するデータが異なるだけです.
したがって,方法は柔軟で変化が多く,最良の方法はなく,より適切な方法しかない.