MyBatis 分頁插件使用教程
MyBatis 是一款優秀的持久層框架,但原生的 MyBatis 并不支持分頁查詢。為了簡化分頁操作,MyBatis 官方和第三方提供了多種分頁插件,最常用的就是 MyBatis-Plus 的分頁插件。本文詳細介紹 MyBatis-Plus 分頁插件的使用方法。
1. 什么是分頁插件
分頁插件的作用是攔截查詢 SQL,在執行查詢之前或之后自動拼接分頁相關的 SQL,幫助開發者簡化分頁處理邏輯,無需手動拼接 LIMIT 和 OFFSET。
2. 環境準備
引入 MyBatis-Plus 依賴
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version>
</dependency>
配置分頁插件
創建配置類:
@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
3. 分頁查詢使用示例
實體類示例
@Data
public class User {private Long id;private String name;private Integer age;
}
Mapper 接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
分頁查詢示例
@Autowired
private UserMapper userMapper;@Test
public void testPage() {Page<User> page = new Page<>(1, 5); // 第1頁,每頁5條Page<User> userPage = userMapper.selectPage(page, null);System.out.println("總記錄數: " + userPage.getTotal());System.out.println("總頁數: " + userPage.getPages());userPage.getRecords().forEach(System.out::println);
}
4. 帶條件的分頁查詢
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("age", 20);Page<User> page = new Page<>(1, 3);
Page<User> userPage = userMapper.selectPage(page, queryWrapper);
5. 注意事項
- 分頁插件需要配置 MybatisPlusInterceptor
- Page 對象的兩個重要參數:
- 當前頁數 current
- 每頁顯示條數 size
- 分頁結果包含:
- 總記錄數 total
- 總頁數 pages
- 當前頁數據 records
6. 小結
MyBatis-Plus 分頁插件極大簡化了分頁查詢的實現,開發者無需關心底層的 SQL 拼接,只需傳入分頁參數即可快速完成分頁查詢。它是企業開發中非常實用的功能,推薦在 MyBatis 項目中廣泛使用。