{"id":23943,"date":"2024-03-16T02:17:50","date_gmt":"2024-03-16T02:17:50","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/"},"modified":"2024-03-22T02:29:36","modified_gmt":"2024-03-22T02:29:36","slug":"a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/","title":{"rendered":"A demonstration of how to use the MyBatisPlus pagination plugin IPage."},"content":{"rendered":"<p>MyBatis Plus is an excellent enhanced tool for MyBatis, offering many practical features including pagination. Pagination allows for dividing a large amount of data into multiple pages for more efficient queries and reduced data transfer.<\/p>\n<p>In MyBatis Plus, pagination queries are done using the IPage interface. IPage is a pagination plugin provided by MyBatis Plus, which includes methods and properties related to pagination queries. Below is an example code using IPage:<\/p>\n<ol>\n<li>First of all, we need to define a method for pagination query as shown below:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Service<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">UserServiceImpl<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">ServiceImpl<\/span>&lt;UserMapper, User&gt; <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">UserService<\/span> {\r\n\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> IPage&lt;User&gt; <span class=\"hljs-title function_\">getUserListByPage<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span> pageNum, <span class=\"hljs-type\">int<\/span> pageSize)<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u5206\u9875\u5bf9\u8c61<\/span>\r\n        IPage&lt;User&gt; page = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Page<\/span>&lt;&gt;(pageNum, pageSize);\r\n        <span class=\"hljs-comment\">\/\/ \u8c03\u7528MyBatis Plus\u7684\u5206\u9875\u67e5\u8be2\u65b9\u6cd5<\/span>\r\n        IPage&lt;User&gt; userPage = baseMapper.selectPage(page, <span class=\"hljs-literal\">null<\/span>);\r\n        <span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u67e5\u8be2\u7ed3\u679c<\/span>\r\n        <span class=\"hljs-keyword\">return<\/span> userPage;\r\n    }\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>In the code above, we first create a pagination object IPage<User> page = new Page<>(pageNum, pageSize), where pageNum represents the current page number, and pageSize represents the number of records displayed per page. Then, we call the pagination query method baseMapper.selectPage(page, null) provided by MyBatis Plus, passing the pagination object and query conditions as parameters. Finally, we return the query results.<\/li>\n<li>In the place where the paging query method is called, we can achieve pagination by calling the method getUserListByPage(pageNum, pageSize) as shown below:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Autowired<\/span>\r\n<span class=\"hljs-keyword\">private<\/span> UserService userService;\r\n\r\n<span class=\"hljs-meta\">@GetMapping(\"\/users\")<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">getUserListByPage<\/span><span class=\"hljs-params\">(<span class=\"hljs-meta\">@RequestParam(\"pageNum\")<\/span> <span class=\"hljs-type\">int<\/span> pageNum, <span class=\"hljs-meta\">@RequestParam(\"pageSize\")<\/span> <span class=\"hljs-type\">int<\/span> pageSize)<\/span> {\r\n    IPage&lt;User&gt; userPage = userService.getUserListByPage(pageNum, pageSize);\r\n    <span class=\"hljs-keyword\">return<\/span> Result.success(userPage);\r\n}\r\n<\/code><\/pre>\n<p>In the above code, we retrieve the paginated query results by calling the userService.getUserListByPage(pageNum, pageSize) method and return the results.<\/p>\n<p>By utilizing the sample code above, we can observe that implementing pagination query using the IPage interface is very straightforward. Simply create a pagination object and call the pagination query method provided by MyBatis Plus. Additionally, the IPage interface also offers other practical methods such as retrieving the total number of records and total number of pages, which can be accessed based on actual requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MyBatis Plus is an excellent enhanced tool for MyBatis, offering many practical features including pagination. Pagination allows for dividing a large amount of data into multiple pages for more efficient queries and reduced data transfer. In MyBatis Plus, pagination queries are done using the IPage interface. IPage is a pagination plugin provided by MyBatis Plus, [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-23943","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A demonstration of how to use the MyBatisPlus pagination plugin IPage. - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A demonstration of how to use the MyBatisPlus pagination plugin IPage.\" \/>\n<meta property=\"og:description\" content=\"MyBatis Plus is an excellent enhanced tool for MyBatis, offering many practical features including pagination. Pagination allows for dividing a large amount of data into multiple pages for more efficient queries and reduced data transfer. In MyBatis Plus, pagination queries are done using the IPage interface. IPage is a pagination plugin provided by MyBatis Plus, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T02:17:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T02:29:36+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"A demonstration of how to use the MyBatisPlus pagination plugin IPage.\",\"datePublished\":\"2024-03-16T02:17:50+00:00\",\"dateModified\":\"2024-03-22T02:29:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\"},\"wordCount\":271,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\",\"name\":\"A demonstration of how to use the MyBatisPlus pagination plugin IPage. - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T02:17:50+00:00\",\"dateModified\":\"2024-03-22T02:29:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A demonstration of how to use the MyBatisPlus pagination plugin IPage.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A demonstration of how to use the MyBatisPlus pagination plugin IPage. - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/","og_locale":"en_US","og_type":"article","og_title":"A demonstration of how to use the MyBatisPlus pagination plugin IPage.","og_description":"MyBatis Plus is an excellent enhanced tool for MyBatis, offering many practical features including pagination. Pagination allows for dividing a large amount of data into multiple pages for more efficient queries and reduced data transfer. In MyBatis Plus, pagination queries are done using the IPage interface. IPage is a pagination plugin provided by MyBatis Plus, [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T02:17:50+00:00","article_modified_time":"2024-03-22T02:29:36+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"A demonstration of how to use the MyBatisPlus pagination plugin IPage.","datePublished":"2024-03-16T02:17:50+00:00","dateModified":"2024-03-22T02:29:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/"},"wordCount":271,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/","url":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/","name":"A demonstration of how to use the MyBatisPlus pagination plugin IPage. - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T02:17:50+00:00","dateModified":"2024-03-22T02:29:36+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/a-demonstration-of-how-to-use-the-mybatisplus-pagination-plugin-ipage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A demonstration of how to use the MyBatisPlus pagination plugin IPage."}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=23943"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23943\/revisions"}],"predecessor-version":[{"id":57949,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23943\/revisions\/57949"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=23943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=23943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=23943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}