1

以下は、私のJSPのページ分割されたデータテーブルのコードです:

$(document).ready( function() {
    $('#paginatedTable').dataTable( {
        "bServerSide" :true,
        "sAjaxSource" :"/JQueryPagination/Myservlet",
        "bProcessing" :false,
        "sPaginationType" :"full_numbers",
        "bJQueryUI" :false,
        "aoColumns" : [ {
            "mDataProp" :"Name"
        }, {
            "mDataProp" :"Address"
        }, {
            "mDataProp" :"Town"
        } ]
    });
});

私のサーブレットには、結果セットで 100 万行を返す会社など、データベース テーブルからデータ全体を取得するクエリがあります。

List<Company> companies =  fetchCompleteCompanyDataFromDb(); 

この結果セットは、次のようにフィルタリングされます。

List<Company>filteredCompanyList = companies.subList(iDisplayStart,DisplayStart+iDisplayLength);

これfilteredCompanyListは、データテーブルに表示しているリストで、10 行です。ユーザーがページネーションの「次へ」ボタンをクリックすると、新しいリクエストが起動され、完全な会社データが再度取得され、2 ページ目の次の 10 レコードがフィルタリングされます。つまり、ユーザーが次のボタンをクリックするたびに、100 万件のレコードを取得するためのクエリが起動されます。

ユーザーが次のボタンをクリックしたときに、表示する次の10 件のレコードのみを取得する方法があるかどうかを知る必要があります。

4

2 に答える 2

1

これに対する解決策は、おそらく fetchCompleteCompanyDataFromDb() の実装方法にあります。これをどのように行っているかによって、新しい関数を実装したい場合があります。

fetchPageFromDb(int pageNumber, int pageSize)

fetchCompleteCompanyDataFromDb() がどのように機能するのかわからないため、特定の実装を提案するのは難しいため、クエリを形成するコードの一部としてページネーションを実装する必要があると想定しています。SQL でページングを実装する方法について Google で検索し、学んだことを報告してください。

于 2014-01-30T18:56:41.917 に答える