MybatisPlusのページング機能

前提条件:

MybatisPlus の SpringBoot 統合が完了しました 詳細は ----> MyBatisPlus の SpringBoot 統合_Maiko Star's Blog-CSDN Blogをご覧ください。

(最初の 2 つのステップを完了するだけで済みます)

1. ページネーションプラグインを設定する 

@Configuration
public class MyBatisConfig {


    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();

        //这是分页拦截器
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setOverflow(true);
        paginationInnerInterceptor.setMaxLimit(500L);
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);

        return mybatisPlusInterceptor;
    }
}

このコードは、MyBatis-Plus フレームワークを使用する構成クラスです。@Configuration アノテーションを使用して構成クラスとしてマークし、@Bean アノテーションを使用して paginationInterceptor メソッドを Bean として宣言します。

メソッド本体内では、次の処理が行われます。

  1. MybatisPlusInterceptor オブジェクトを作成します。
  2. PaginationInnerInterceptor オブジェクトを作成し、いくつかのプロパティを設定します。このうち、setOverflow(true) は、要求されたページ番号が最大ページ数を超えた場合にホームページに戻ることを示し、setMaxLimit(500L) は、1 ページで返されるレコードの最大数が 500 に設定されることを示します。
  3. PaginationInnerInterceptor を MybatisPlusInterceptor に追加します。
  4. MybatisPlusInterceptor オブジェクトを Bean として返します。

次に、ページネーション機能を使用します。

@GetMapping("/dynamic_table")
public String dynamic_table(@RequestParam(value="pn",defaultValue = "1") Integer pn,Model model){
    //表格内容的遍历

    //从数据库中查出user表中的用户进行展示

    //构造分页参数
    Page<User> page = new Page<>(pn, 2);
    //调用page进行分页
    Page<User> userPage = userService.page(page, null);

    model.addAttribute("users",userPage);

    return "table/dynamic_table";
}

このコードは、Spring Boot フレームワークを使用し、@GetMapping アノテーションを使用して HTTP GET リクエストを処理し、パス「/dynamic_table」にマップする Java コントローラー メソッドです。pn というリクエスト パラメータを受け入れます。指定されない場合、デフォルトは 1 になります。また、データをビューに渡すために使用される Model オブジェクトをパラメータとして受け入れます。

メソッド本体内では、次の処理が行われます。

  1. Page オブジェクトが構築され、現在のページ番号が pn として指定され、各ページに表示されるレコードの数は 2 です。
  2. userService の page メソッドを呼び出してページごとのクエリを実行し、クエリ結果を userPage オブジェクトにカプセル化します。
  3. userPage オブジェクトをビューに表示するモデルに追加します。
  4. 「dynamic_table」という名前のビューがレンダリングされることを示す文字列「table/dynamic_table」を返します。

このメソッドではuserService.page(page, null)、2 番目のパラメーターが null の場合、クエリ条件が追加されていないことを意味します。pageパラメータはページ分割パラメータを指定するために使用され、2 番目のパラメータは通常、Wrapperオブジェクトなどのクエリ条件を構築するために使用されます。null を渡すことは、クエリ条件がクエリに追加されないこと、つまりすべてのレコードがクエリされることを意味します。

この場合、userService.page(page, null)データベース内のすべてのユーザー レコードがクエリされ、page指定されたページング パラメータに従ってページ分割されます。したがって、返されるuserPageオブジェクトには、ページングされたクエリの結果データが含まれます。

おすすめ

転載: blog.csdn.net/weixin_55772633/article/details/131942113