前提条件:
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 として宣言します。
メソッド本体内では、次の処理が行われます。
- MybatisPlusInterceptor オブジェクトを作成します。
- PaginationInnerInterceptor オブジェクトを作成し、いくつかのプロパティを設定します。このうち、setOverflow(true) は、要求されたページ番号が最大ページ数を超えた場合にホームページに戻ることを示し、setMaxLimit(500L) は、1 ページで返されるレコードの最大数が 500 に設定されることを示します。
- PaginationInnerInterceptor を MybatisPlusInterceptor に追加します。
- 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 オブジェクトをパラメータとして受け入れます。
メソッド本体内では、次の処理が行われます。
- Page オブジェクトが構築され、現在のページ番号が pn として指定され、各ページに表示されるレコードの数は 2 です。
- userService の page メソッドを呼び出してページごとのクエリを実行し、クエリ結果を userPage オブジェクトにカプセル化します。
- userPage オブジェクトをビューに表示するモデルに追加します。
- 「dynamic_table」という名前のビューがレンダリングされることを示す文字列「table/dynamic_table」を返します。
このメソッドではuserService.page(page, null)
、2 番目のパラメーターが null の場合、クエリ条件が追加されていないことを意味します。page
パラメータはページ分割パラメータを指定するために使用され、2 番目のパラメータは通常、Wrapper
オブジェクトなどのクエリ条件を構築するために使用されます。null を渡すことは、クエリ条件がクエリに追加されないこと、つまりすべてのレコードがクエリされることを意味します。
この場合、userService.page(page, null)
データベース内のすべてのユーザー レコードがクエリされ、page
指定されたページング パラメータに従ってページ分割されます。したがって、返されるuserPage
オブジェクトには、ページングされたクエリの結果データが含まれます。