{"id":22795,"date":"2024-03-16T00:09:30","date_gmt":"2024-03-16T00:09:30","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/"},"modified":"2024-03-21T23:43:57","modified_gmt":"2024-03-21T23:43:57","slug":"how-does-mybatis-achieve-pagination","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/","title":{"rendered":"How does MyBatis achieve pagination?"},"content":{"rendered":"<p>MyBatis enables pagination queries through the RowBounds object.<\/p>\n<p>Firstly, define a method in the Mapper interface that takes in a RowBounds object and other query parameters as parameters. The method should return a List object.<\/p>\n<pre class=\"post-pre\"><code>List&lt;User&gt; <span class=\"hljs-title function_\">getUsersByPage<\/span><span class=\"hljs-params\">(RowBounds rowBounds, <span class=\"hljs-meta\">@Param(\"param1\")<\/span> String param1, <span class=\"hljs-meta\">@Param(\"param2\")<\/span> String param2)<\/span>;\r\n<\/code><\/pre>\n<p>Next, write the corresponding SQL statement in the Mapper&#8217;s XML file, using the LIMIT keyword to implement pagination. The LIMIT keyword is used to limit the number of rows in the query results, with the first parameter being the offset of the query results and the second parameter being the number of records per page.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"getUsersByPage\"<\/span> <span class=\"hljs-attr\">resultType<\/span>=<span class=\"hljs-string\">\"User\"<\/span>&gt;<\/span>\r\n    SELECT * FROM users\r\n    WHERE param1 = #{param1} AND param2 = #{param2}\r\n    LIMIT #{offset}, #{limit}\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>To implement pagination in the Java code, simply call the method of the Mapper interface with the RowBounds object and other query parameters.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">pageNum<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>; <span class=\"hljs-comment\">\/\/ \u5f53\u524d\u9875\u7801<\/span>\r\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">pageSize<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">10<\/span>; <span class=\"hljs-comment\">\/\/ \u6bcf\u9875\u8bb0\u5f55\u6570<\/span>\r\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">offset<\/span> <span class=\"hljs-operator\">=<\/span> (pageNum - <span class=\"hljs-number\">1<\/span>) * pageSize; <span class=\"hljs-comment\">\/\/ \u8ba1\u7b97\u504f\u79fb\u91cf<\/span>\r\n<span class=\"hljs-type\">RowBounds<\/span> <span class=\"hljs-variable\">rowBounds<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">RowBounds<\/span>(offset, pageSize);\r\nList&lt;User&gt; users = userMapper.getUsersByPage(rowBounds, param1, param2);\r\n<\/code><\/pre>\n<p>In the above code, pageNum represents the current page number, pageSize represents the number of records per page, and offset represents the offset of the query results. With this information, we can calculate the parameters of the RowBounds object. Then, we call the method of the Mapper interface to conduct a paginated query and obtain the paginated result, users.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MyBatis enables pagination queries through the RowBounds object. Firstly, define a method in the Mapper interface that takes in a RowBounds object and other query parameters as parameters. The method should return a List object. List&lt;User&gt; getUsersByPage(RowBounds rowBounds, @Param(&#8220;param1&#8221;) String param1, @Param(&#8220;param2&#8221;) String param2); Next, write the corresponding SQL statement in the Mapper&#8217;s XML file, [&hellip;]<\/p>\n","protected":false},"author":13,"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-22795","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>How does MyBatis achieve pagination? - 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\/how-does-mybatis-achieve-pagination\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How does MyBatis achieve pagination?\" \/>\n<meta property=\"og:description\" content=\"MyBatis enables pagination queries through the RowBounds object. Firstly, define a method in the Mapper interface that takes in a RowBounds object and other query parameters as parameters. The method should return a List object. List&lt;User&gt; getUsersByPage(RowBounds rowBounds, @Param(&quot;param1&quot;) String param1, @Param(&quot;param2&quot;) String param2); Next, write the corresponding SQL statement in the Mapper&#8217;s XML file, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\" \/>\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-16T00:09:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T23:43:57+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\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=\"Isabella Edwards\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"How does MyBatis achieve pagination?\",\"datePublished\":\"2024-03-16T00:09:30+00:00\",\"dateModified\":\"2024-03-21T23:43:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\"},\"wordCount\":178,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\",\"name\":\"How does MyBatis achieve pagination? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T00:09:30+00:00\",\"dateModified\":\"2024-03-21T23:43:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How does MyBatis achieve pagination?\"}]},{\"@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\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How does MyBatis achieve pagination? - 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\/how-does-mybatis-achieve-pagination\/","og_locale":"en_US","og_type":"article","og_title":"How does MyBatis achieve pagination?","og_description":"MyBatis enables pagination queries through the RowBounds object. Firstly, define a method in the Mapper interface that takes in a RowBounds object and other query parameters as parameters. The method should return a List object. List&lt;User&gt; getUsersByPage(RowBounds rowBounds, @Param(\"param1\") String param1, @Param(\"param2\") String param2); Next, write the corresponding SQL statement in the Mapper&#8217;s XML file, [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T00:09:30+00:00","article_modified_time":"2024-03-21T23:43:57+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"How does MyBatis achieve pagination?","datePublished":"2024-03-16T00:09:30+00:00","dateModified":"2024-03-21T23:43:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/"},"wordCount":178,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/","url":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/","name":"How does MyBatis achieve pagination? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T00:09:30+00:00","dateModified":"2024-03-21T23:43:57+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-does-mybatis-achieve-pagination\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How does MyBatis achieve pagination?"}]},{"@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\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22795","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=22795"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22795\/revisions"}],"predecessor-version":[{"id":56735,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22795\/revisions\/56735"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=22795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=22795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=22795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}