{"id":4083,"date":"2024-03-13T07:54:59","date_gmt":"2024-03-13T07:54:59","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/"},"modified":"2025-07-31T01:22:54","modified_gmt":"2025-07-31T01:22:54","slug":"how-to-paginate-a-result-set-in-mybatis","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/","title":{"rendered":"MyBatis Pagination Guide: RowBounds"},"content":{"rendered":"<p>In MyBatis, you can use the RowBounds class to achieve paginated query results. RowBounds is a helper class provided by MyBatis that allows you to specify the starting position and number of records per page in the query result set.<\/p>\n<p>Here is an example code that demonstrates how to implement pagination for querying results in MyBatis.<\/p>\n<ol>\n<li>Boundary of a row<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>List&lt;User&gt; <span class=\"hljs-title function_\">selectUsersByPage<\/span><span class=\"hljs-params\">(RowBounds rowBounds)<\/span>;\r\n<\/code><\/pre>\n<ol>\n<li>restriction<\/li>\n<\/ol>\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\">\"selectUsersByPage\"<\/span> <span class=\"hljs-attr\">resultType<\/span>=<span class=\"hljs-string\">\"User\"<\/span>&gt;<\/span>\r\n    select * from user\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<ol>\n<li>Limitations on the number of rows returned in a query.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><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, limit);\r\nList&lt;User&gt; users = userMapper.selectUsersByPage(rowBounds);\r\n<\/code><\/pre>\n<p>This allows for paging the query results in MyBatis. By setting the starting position and the number of records per page with the RowBounds object, the range of query results can be controlled, thus achieving pagination functionality.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In MyBatis, you can use the RowBounds class to achieve paginated query results. RowBounds is a helper class provided by MyBatis that allows you to specify the starting position and number of records per page in the query result set. Here is an example code that demonstrates how to implement pagination for querying results in [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[3267,2797,1459,361,3266],"class_list":["post-4083","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-database-paging","tag-java-orm","tag-mybatis","tag-pagination","tag-rowbounds"],"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>MyBatis Pagination Guide: RowBounds - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.\" \/>\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-to-paginate-a-result-set-in-mybatis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyBatis Pagination Guide: RowBounds\" \/>\n<meta property=\"og:description\" content=\"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\" \/>\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-13T07:54:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T01:22:54+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\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=\"Ava Mitchell\" \/>\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-to-paginate-a-result-set-in-mybatis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"MyBatis Pagination Guide: RowBounds\",\"datePublished\":\"2024-03-13T07:54:59+00:00\",\"dateModified\":\"2025-07-31T01:22:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\"},\"wordCount\":112,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"database paging\",\"Java ORM\",\"MyBatis\",\"Pagination\",\"RowBounds\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\",\"name\":\"MyBatis Pagination Guide: RowBounds - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-13T07:54:59+00:00\",\"dateModified\":\"2025-07-31T01:22:54+00:00\",\"description\":\"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyBatis Pagination Guide: RowBounds\"}]},{\"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MyBatis Pagination Guide: RowBounds - Blog - Silicon Cloud","description":"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.","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-to-paginate-a-result-set-in-mybatis\/","og_locale":"en_US","og_type":"article","og_title":"MyBatis Pagination Guide: RowBounds","og_description":"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-13T07:54:59+00:00","article_modified_time":"2025-07-31T01:22:54+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"MyBatis Pagination Guide: RowBounds","datePublished":"2024-03-13T07:54:59+00:00","dateModified":"2025-07-31T01:22:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/"},"wordCount":112,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["database paging","Java ORM","MyBatis","Pagination","RowBounds"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/","name":"MyBatis Pagination Guide: RowBounds - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-13T07:54:59+00:00","dateModified":"2025-07-31T01:22:54+00:00","description":"Learn effective pagination in MyBatis using RowBounds. Clear code example included for result set optimization.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-paginate-a-result-set-in-mybatis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyBatis Pagination Guide: RowBounds"}]},{"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4083","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4083"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4083\/revisions"}],"predecessor-version":[{"id":148744,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4083\/revisions\/148744"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}