MyBatis-Plus 提供了強大的分頁外掛,可以方便地實現資料庫查詢結果的分頁。
以下是關於 MyBatis-Plus 分頁外掛的詳細介紹,包括如何配置和使用。
1. 新增依賴
首先,需要在專案中新增 MyBatis-Plus 和分頁外掛的相關依賴。使用 Maven,在 pom.xml
檔案中新增:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
</dependency>
2. 配置分頁外掛
官方文件說明 https://baomidou.com/plugins/pagination/
在 Spring Boot 專案中,通常需要在配置類中新增分頁外掛配置。建立一個配置類來配置 MyBatis-Plus 分頁外掛。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
3. 使用分頁外掛
MyBatis-Plus 分頁外掛提供了 Page
類用於分頁查詢。可以在 Mapper 介面中使用分頁查詢方法,或者在 Service 層中進行呼叫。
示例:使用分頁外掛進行查詢
假設有一個 User
實體類和對應的 Mapper 介面:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 自定義分頁查詢方法
Page<User> selectUserPage(Page<User> page);
}
在 Service 層中使用分頁查詢:
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public Page<User> getUserPage(int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectPage(page, null);
}
}
在 Controller 層中呼叫 Service 層方法進行分頁查詢:
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public Page<User> getUsers(@RequestParam int pageNum, @RequestParam int pageSize) {
return userService.getUserPage(pageNum, pageSize);
}
}
4. 配置分頁外掛屬性
分頁外掛的一些常見配置項可以在 application.properties
或 application.yml
中進行設定。
# application.properties
mybatis-plus.configuration.log-impl=STDOUT_LOGGING
mybatis-plus.global-config.db-config.id-type=auto
5. 處理分頁查詢引數
在分頁查詢中,可以透過 Page
類傳遞分頁引數,如當前頁碼和每頁記錄數。分頁外掛會自動處理 SQL 查詢,生成分頁所需的 LIMIT
和 OFFSET
。
Page<User> page = new Page<>(1, 10); // 第1頁,每頁10條記錄
Page<User> userPage = userMapper.selectPage(page, null);
總結
- 新增依賴:在專案中新增 MyBatis-Plus 和分頁外掛的依賴。
- 配置外掛:在配置類中配置 MyBatis-Plus 分頁外掛。
- 使用分頁:在 Mapper 和 Service 層使用
Page
類進行分頁查詢。 - 分頁查詢引數:透過
Page
類傳遞分頁引數,外掛會自動處理分頁 SQL。
這樣配置和使用 MyBatis-Plus 的分頁外掛可以方便地進行分頁查詢,並簡化了分頁處理的複雜性。