まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータをページに表示することは不可能です。すべてのデータをページに表示すると、クエリ速度が遅くなります。したがって、ページ分割クエリは、①データクエリ、②パフォーマンスの最適化などの問題を解決します(他の問題については補足を歓迎します)。 ページネーション クエリは、真のページネーションと偽のページネーションにも分けられます。 真のページング: データベースで見つかったデータをページに直接表示します。利点は、データベース データの変更がクエリ結果に影響しないことです。欠点は、速度がわずかに遅くなることです。 偽のページング: クエリされたすべてのデータをリスト コレクション キャッシュにカプセル化し、プレゼンテーション層メソッド呼び出しを実行します。データはコレクションとしてカプセル化されてメモリに格納されるため、速度は速くなりますが、データベースが変更された後に不一致が発生するという欠点があります。 2種類のページングにはそれぞれ長所と短所がありますので、状況に応じて使い分けてください。 実際のページング方法は次のとおりです。 1. JavaBeanを作成する java.io.Serializable をインポートします。 /** * ユーザーエンティティクラス * @author * */ パブリッククラスUserBeanはSerializableを実装します{ /**ユーザーID*/ プライベート int id; /**ユーザー名*/ プライベート文字列名; パブリックUserBean() { } パブリックUserBean(int id, String name) { id は、 this.name = 名前; } パブリック int getId() { ID を返します。 } パブリック void setId(int id) { id は、 } パブリック文字列getName() { 名前を返します。 } パブリック void setName(文字列名) { this.name = 名前; } @オーバーライド パブリック文字列toString() { "UserBean [id=" + id + "、name=" + name + "]" を返します。 } } 2. ページングデータを表示するためのJavaBean /** * ページングデータを表示するために使用されるJavaBeanオブジェクト * @author * */ java.util.List をインポートします。 パブリッククラス PagenationBean { /** 現在のページ番号*/ プライベート整数 currPage; /**ページ総数*/ プライベート整数totalPage; /** 表示用のテーブルデータ */ プライベートList<UserBean>データリスト; パブリック整数 getCurrPage() { currPage を返します。 } パブリック void setCurrPage(Integer currPage) { this.currPage = currPage; } パブリック整数 getTotalPage() { totalPage を返します。 } パブリック void setTotalPage(整数 totalPage) { this.totalPage = 合計ページ; } パブリックリスト<StuBean> getDataList() { データリストを返します。 } パブリック void setDataList(List<StuBean> dataList) { this.dataList = データリスト; } } 3. Dao層実装クラス @オーバーライド public int getTotalCount() { //データの合計数を計算します this.setConnection(); 合計カウント = 0; 試す { ps = con.prepareStatement("t_user から count(*) を選択します"); rs = ps.executeQuery(); rs.next() の場合 { 合計カウント = rs.getInt(1); } } キャッチ (例外 e) { e.printStackTrace(); ついに this.closeConnection(); } totalCount を返します。 } @オーバーライド public List<UserBean> getUserListByStartIndex(int StartIndex) { //渡された制限の最初のパラメータに従って、このパラメータの背後にある 10 個のデータを取得します List<UserBean> userList = new ArrayList<>(); ユーザーBean userBean = null; この接続を設定します。 合計カウント = 0; 試す { ps = con.prepareStatement("t_user limit ? , 10 から * を選択します"); ps.setInt(1, 開始インデックス); rs = ps.executeQuery(); (rs.next()) の間 { ユーザーBean = 新しいStuBean(); ユーザー Bean の ID を設定します。 userBean.setName(rs.getString("名前")); stuList.add(userBean); } } キャッチ (例外 e) { e.printStackTrace(); ついに this.closeConnection(); } ユーザーリストを返します。 } 4. サービス層実装クラス プライベート IUserDao isd = 新しい UserDaoImpl(); @オーバーライド パブリック int getTotalPage() { //データの数を取得します int totalCount = isd.getTotalCount(); //ページの合計数を計算します: int totalPage = (totalCount + 10 -1)/10; totalPage を返します。 } @オーバーライド パブリックリスト<UserBean> getUserListByCurrPage(int currPage) { //現在のページの開始インデックスを計算します int StartIndex = (currPage - 1) * 10; リスト<UserBean> userList = isd.getStuListByStartIndex(StartIndex); ユーザーリストを返します。 } 5. クエリされたデータをページに配置して表示します。 上記の方法では、10 個のデータがページに表示され、計算と分析は次のようになります。 データ項目の合計数: totalCount ページあたりのエントリ数: pageSize 総ページ数: totalPage 開始インデックス 現在のページ番号 currPage 総ページ数の計算式: 合計数 % ページサイズ 余りが 0 の場合 ——> totalPage = totalCount / pageSize 余りが 0 でない場合 ——> totalPage = totalCount / pageSize + 1 結論: totalPage = (totalCount + pageSize -1)/pageSize 要約する 上記は、編集者が紹介したMySqlページクエリ機能です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: JavaScript クリップボードの使用法の詳細な説明
目次操作方法操作プロセス既存のテーブルにパーティション テーブルを作成し、データを新しいテーブルに移...
1. 基本的なテキスト要素を使用してコンテンツをマークアップするまず表示効果を見てみましょう:対応す...
目次1. コンポーネントの肥大化2. 状態を直接変更する3. プロパティは数値を渡す必要があるが文字...
フロントエンドプロジェクトのパッケージ化.env.productionを見つけて、自分のIPまたはド...
<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレー...
テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...
例: mysqldump –all-databases を使用すると、すべてのライブラリがエクスポー...
外部結合の構文は次のとおりです。フィールド名を選択FROM テーブル名 1 LEFT|RIGHT|F...
1. 仮想マシンに共有フォルダを設定します。 1. 処理する仮想マシンを選択し、右クリックして設定...
目次01 背景02 はじめに03 ワークフロー04 いくつかの質問05 ファイルをバックアップする0...
目次1. データベース操作2. データ型3. バックアップとリカバリ3. 操作4. 上級5. 知識補...
これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...
この記事では、例を使用して、replace と regexp を使用して MySQL で正規表現を置...
開発中に画像とテキストが 1 行に表示されることはよくあります。2 つのインライン要素を揃えるのは通...
朝早くに電話で起こされました。あるプロジェクトのデータベースがダウンしていて起動できないとのことでし...