MyBatis(3.2.3) - Paginated ResultSets using RowBounds

时间:2023-02-03 08:50:52

Sometimes, we may need to work with huge volumes of data, such as with tables with millions of records. Loading all these records may not be possible due to memory constraints, or we may need only a fragment of data. Typically in web applications, pagination is used to display large volumes of data in a page-by-page style.

MyBatis can load table data page by page using RowBounds. The RowBounds object can be constructed using the offset and limit parameters. The parameter offset refers to the starting position and limit refers to the number of records.

Suppose if you want to load and display 25 student records per page, you can use the following query:

<select id="findAllStudents" resultMap="StudentResult">
select * from Students
</select>

Then, you can load the first page (first 25 records) as follows:

int offset =0 , limit =25;
RowBounds rowBounds = new RowBounds(offset, limit);
List<Student> = studentMapper.getStudents(rowBounds);

To display the second page, use offset=25 and limit=25; for the third page, use offset=50 and limit=25.