mybatis-plus分页方式
MyBatis-Plus 提供了内置的分页插件,可以非常方便地实现分页功能。以下是如何配置和使用 MyBatis-Plus 分页的步骤:
添加分页插件:
在你的 MyBatis-Plus 配置类中添加分页插件。
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
使用分页:
在你的 Mapper 接口中使用
Page
对象作为参数进行查询。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT * FROM user WHERE status = #{status}")
Page<User> selectPageByStatus(@Param("status") String status, Page<?> page);
}
在你的服务层或控制器中,创建 Page
对象并设置分页参数,然后调用 Mapper 中的分页方法。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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 UserMapper userMapper;
@GetMapping("/users")
public Page<User> getUsers(@RequestParam(value = "status", defaultValue = "ACTIVE") String status,
@RequestParam(value = "current", defaultValue = "1") int current,
@RequestParam(value = "size", defaultValue = "10") int size) {
Page<User> page = new Page<>(current, size);
return userMapper.selectPageByStatus(status, page);
}
}
在上述代码中,Page<User>
对象被创建时指定了当前页和每页显示的数量,然后这个对象被传递给 Mapper 中的分页方法。分页方法会返回一个包含了结果列表和分页信息(如总条数、总页数等)的 Page
对象。
评论已关闭