Mybatis-Plus 分頁通常我們使用 PageHelper、IPage。PageHelper,以往的博客中有使用到,今天我們來使用 Ipage 做一個基礎的分頁示例。(Spring Boot+MybatisPlus)
1. 首先導入需要的Jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
2. 使用IPage需要注入一個bean攔截器交給spring進行管理
注: 3.4.0 及版本對此部分有更新,同時idea會提示PaginationInterceptor過時,新版本改用了MybatisPlusInterceptor
@Configuration
@MapperScan("com.feifeiye.mapper") // 掃描mapper接口
public class Config {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
3. Mapper 層
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
4. 接口 AND 實現
接口:
public interface UserService extends IService<User> {
IPage<User> findPage(Page<User> pageParam, UserQuery userQuery);
}
實現類:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
/**
* 條件分頁查詢
*/
@Override
public IPage<User> findPage(Page<User> pageParam, UserQuery userQuery) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
/*非空則加入條件*/
if (!StringUtils.isEmpty(userQuery.getName())) {
queryWrapper.like("name", userQuery.getName());
}
if (!StringUtils.isEmpty(userQuery.getPhone())){
queryWrapper.like("phone", userQuery.getPhone());
}
if (!StringUtils.isEmpty(userQuery.getStatus())){
queryWrapper.eq("status", userQuery.getStatus());
}
IPage<User> userPage = baseMapper.selectPage(pageParam, queryWrapper);
return userPage;
}
}
5. Controller 層
注: UserQuery 為查詢對象,可根據實際業務編寫,或直接傳入需要查詢的參數。
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 分頁講師條件查詢
*/
@GetMapping("{page}/{limit}")
public IPage<User> findPage(
@PathVariable(value = "page") Long page,
@PathVariable(value = "limit") Long limit,
UserQuery userQuery)
{
Page<User> pageParam = new Page<User>(page, limit);
IPage<User> pageResult=userService.findPage(pageParam, userQuery);
return pageResult;
}
}
編寫不易,如果對您有幫助,點贊,收藏,評論 三連支持下博主就是對博主最大的鼓勵~~~