Varios métodos de paginación de mybatisplus.

En la documentación oficial se proporcionan varios métodos de paginación, demos ejemplos uno por uno.

IPage<UserVo> selectPageVo(IPage<?> page, Integer state);
// or (class MyPage extends Ipage<UserVo>{ private Integer state; })
MyPage selectPageVo(MyPage page);
// or
List<UserVo> selectPageVo(IPage<UserVo> page, Integer state);

La diferencia entre estos tres métodos de paginación de Mybatis Plus radica principalmente en el método de pasar parámetros y el tipo de resultados devueltos.

  1. IPage selectPageVo (página IPage<?>, estado entero)

Este método requiere pasar un objeto IPage como parámetro de paginación y su tipo genérico puede ser cualquier clase de entidad. El valor de retorno del método también es un objeto IPage, cuyo tipo genérico es
el tipo UserVo, que representa el conjunto de resultados de la consulta.

  1. Mi página selectPageVo (página Mi página)

Este método requiere pasar un objeto de paginación personalizado MyPage como parámetro de paginación. Este objeto hereda la
interfaz IPage proporcionada por Mybatis Plus y agrega un atributo de estado de tipo Integer. El valor de retorno del método también es un objeto MyPage, cuyo tipo genérico es el
tipo UserVo, que representa el conjunto de resultados de la consulta.

  1. Lista selectPageVo (página IPage, estado entero)

Este método requiere pasar un objeto IPage como parámetro de paginación y el tipo genérico es el tipo UserVo. El valor de retorno del método es un
objeto Lista, que representa el conjunto de resultados de la consulta.

En general, el núcleo de estos tres métodos es utilizar el complemento de paginación proporcionado por Mybatis Plus para implementar la función de paginación, la diferencia es que los métodos para pasar parámetros y devolver resultados son ligeramente diferentes. Simplemente elija el método apropiado según las necesidades reales.

Los siguientes ejemplos ilustran cómo utilizarlos.

1. IPage selectPageVo (página IPage<?>, estado entero)

Tomando como ejemplo la consulta de la lista de usuarios, supongamos que tenemos una clase de entidad de Usuario, que contiene la
identificación, el nombre, la edad y otros atributos del usuario. La función que queremos implementar es consultar la lista de todos los usuarios cuya edad es mayor que el valor especificado, ordenarlos en orden ascendente por ID y mostrar 10 registros en cada página.

Primero, defina un método selectUserList() en la interfaz UserMapper. El código es el siguiente:

public interface UserMapper extends BaseMapper<User> {
    
    
    IPage<UserVo> selectUserList(IPage<?> page, Integer age);
}

Luego, llame a este método en UserService para realizar una consulta de paginación, el código es el siguiente:

@Service
public class UserService {
    
    
    @Autowired
    private UserMapper userMapper;
    
    public IPage<UserVo> getUserList(Integer pageNum, Integer age) {
    
    
        IPage<UserVo> page = new Page<>(pageNum, 10, true);
        page.setOrderByAsc("id");
        return userMapper.selectUserList(page, age);
    }
}

Aquí, se crea un objeto Página, que especifica el número de página actual y el número que se muestra en cada página, y se configura para ordenar en orden ascendente por el campo de identificación. Luego use el objeto Page como parámetro para llamar al método selectUserList() en UserMapper para obtener los resultados de la consulta.

Finalmente, los parámetros de la solicitud se reciben en el Controlador y se devuelve el conjunto de resultados, el código es el siguiente:

@RestController
public class UserController {
    
    
    @Autowired
    private UserService userService;
    
    @GetMapping("/users")
    public Result getUsers(@RequestParam(defaultValue = "1") Integer pageNum,
                           @RequestParam(defaultValue = "18") Integer age) {
    
    
        IPage<UserVo> userList = userService.getUserList(pageNum, age);
        return Result.success(userList);
    }
}

En el ejemplo anterior, podemos encontrar que este método requiere pasar un objeto IPage como parámetro de paginación y el tipo de conjunto de resultados devuelto es UserVo.

2. Mi página selectPageVo (página Mi página)

Tomando como ejemplo la consulta de la lista de pedidos, supongamos que tenemos una clase de entidad de Pedido, que contiene
atributos como la identificación del pedido, la identificación del usuario, el número de pedido, etc. La función que queremos implementar es consultar la lista de pedidos de un usuario específico y organizarla en orden inverso según el tiempo de generación del pedido, mostrando 20 registros en cada página.

Primero, defina un método selectOrderList() en la interfaz OrderMapper, el código es el siguiente:

public interface OrderMapper extends BaseMapper<Order> {
    
    
    MyPage selectOrderList(MyPage page, Long userId);
}

Aquí debe utilizar el objeto de paginación personalizado MyPage y agregar un atributo de ID de usuario de tipo Long. Luego use el atributo userId en el método para realizar la consulta y encapsule los resultados de la consulta en MyPage para su devolución.

Luego, llame a este método en OrderService para realizar una consulta de paginación, el código es el siguiente:

@Service
public class OrderService {
    
    
    @Autowired
    private OrderMapper orderMapper;
    
    public MyPage getOrderList(Long userId, Integer pageNum) {
    
    
        MyPage page = new MyPage(pageNum, 20);
        page.setDesc("create_time");
        page.setUserId(userId);
        return orderMapper.selectOrderList(page, userId);
    }
}

Aquí, se crea un objeto MyPage, se especifican el número de página actual y el número de visualizaciones por página, la clasificación se establece en orden inverso según el campo create_time y el ID de usuario se establece en el objeto MyPage. Luego use el objeto MyPage como parámetro para llamar al método selectOrderList() en OrderMapper para obtener los resultados de la consulta.

Finalmente, los parámetros de la solicitud se reciben en el Controlador y se devuelve el conjunto de resultados, el código es el siguiente:

@RestController
public class OrderController {
    
    
    @Autowired
    private OrderService orderService;
    
    @GetMapping("/orders")
    public Result getOrders(@RequestParam(defaultValue = "1") Integer pageNum,
                            @RequestParam Long userId) {
    
    
        MyPage orderList = orderService.getOrderList(userId, pageNum);
        return Result.success(orderList);
    }
}

En el ejemplo anterior, puede encontrar que este método requiere el uso de un objeto de paginación personalizado MyPage, y el tipo de conjunto de resultados devuelto se especifica en función del tipo genérico MyPage.

3. Lista selectPageVo (página IPage, estado entero)

Tomemos como ejemplo la consulta de la lista de artículos. Supongamos que tenemos una clase de entidad Artículo, que contiene la
identificación, el título, el contenido y otros atributos del artículo. La función que queremos implementar es consultar la lista de todos los artículos con estado de publicación, ordenarlos en orden inverso por hora de publicación y mostrar 15 registros en cada página.

Primero, defina un método selectArticleList() en la interfaz ArticleMapper, el código es el siguiente:

public interface ArticleMapper extends BaseMapper<Article> {
    
    
    List<ArticleVo> selectArticleList(IPage<ArticleVo> page, Integer state);
}

Luego, llame a este método en ArticleService para realizar una consulta de paginación. El código es el siguiente:

@Service
public class ArticleService {
    
    
    @Autowired
    private ArticleMapper articleMapper;
    
    public IPage<ArticleVo> getArticleList(Integer pageNum) {
    
    
        IPage<ArticleVo> page = new Page<>(pageNum, 15);
        page.setDesc("publish_time");
        return articleMapper.selectArticleList(page, 1);
    }
}

Aquí, se crea un objeto Página, especificando el número de página actual y el número que se muestra en cada página, y configurando la clasificación en orden inverso según el campo de tiempo de publicación. Luego use el objeto Página como parámetro para llamar al método selectArticleList() en ArticleMapper para obtener los resultados de la consulta.

Finalmente, los parámetros de la solicitud se reciben en el Controlador y se devuelve el conjunto de resultados, el código es el siguiente:

@RestController
public class ArticleController {
    
    
    @Autowired
    private ArticleService articleService;
    
    @GetMapping("/articles")
    public Result getArticles(@RequestParam(defaultValue = "1") Integer pageNum) {
    
    
        IPage<ArticleVo> articleList = articleService.getArticleList(pageNum);
        return Result.success(articleList);
    }
}

En el ejemplo anterior, podemos encontrar que este método requiere pasar un objeto IPage con un tipo genérico de ArticleVo como parámetro de paginación, y el tipo de conjunto de resultados devuelto es ArticleVo.

おすすめ

転載: blog.csdn.net/qq_41345584/article/details/130552725