Consulta de paginação
A consulta de paginação é uma função comumente usada no desenvolvimento diário. Existem também muitos plug-ins na estrutura MyBatis para implementar funções de paginação, como pageHelper. Este é um plug-in de paginação muito simples e fácil de usar que pode ser bem integrado ao Spring Boot. pageHelper é um plug-in de paginação de banco de dados baseado em MyBatis, portanto, quando o usamos, precisamos usar MyBatis como estrutura da camada de persistência. A seguir é usado um exemplo para demonstrar como o pageHelper implementa consultas de paginação.
1. Adicionar dependência pageHelper
Modifique o arquivo pom.xml e adicione a dependência pageHelper:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
pageHelper fornece a biblioteca de dependência pagehelper-spring-boot-starter para a estrutura Spring Boot. Para projetos Spring Boot, você pode usar o componente pagehelper-spring-boot-starter.
2. Adicionar configuração do pageHelper
Adicione a configuração do pageHelper em application.properties.
# 分页框架
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
O exemplo acima é a configuração inicial da estrutura de paginação pageHelper, que é usada principalmente para especificar o tipo de banco de dados.
- helperDialect: Especifique o tipo de banco de dados, que não precisa ser configurado. O plug-in pageHelper detectará automaticamente o tipo de banco de dados.
- Razoável: parâmetro de racionalização de paginação, o padrão é falso. Quando este parâmetro é definido como verdadeiro, quando pageNum ≤ 0, a primeira página é exibida por padrão. Quando pageNum excede pageSize, a última página é exibida.
- supportMethodsArguments: O plug-in de paginação assumirá automaticamente o valor do campo configurado nos parâmetros de acordo com os parâmetros do método de consulta. Quando um valor adequado for encontrado, ele irá paginar automaticamente.
- params: usado para obter o valor do objeto com base no nome do atributo. Você pode configurar pageNum e pageSize. Count não precisa configurar o valor padrão do mapeamento.
3. Chame o teste
Adicione um método de teste de unidade para verificar se a função de paginação entra em vigor. O código de exemplo é o seguinte:
@Test
public void testSelectListPaged() {
PageHelper.startPage(1,5);
List<Student> students = studentMapper.selectAll();
PageInfo<Student> pageInfo = new PageInfo<Student>(students);
System.out.println("总页数:"+pageInfo.getPages()+",总条数:"+pageInfo.getTotal()+",当前页:"+pageInfo.getPageNum());
for (Student stu : students) {
System.out.println("name:"+stu.getName()+",age:"+stu.getAge());
}
}
No exemplo acima, o núcleo da paginação é apenas uma linha de código, PageHelper.startPage(page,pageSize); que marca o início da paginação. Depois de adicionar esta linha de código, o plug-in pageHelper converterá a instrução SQL executada em uma instrução SQL de paginação por meio de seu interceptor interno.
Clique em Executar teste ou clique com o botão direito no método e selecione Executar 'testSelectListPaged' para visualizar os resultados do teste de unidade. Os resultados da execução são mostrados na figura.
Os resultados mostram que o método de teste de unidade foi executado com sucesso e o console exibe a lista de dados da página atual, o número total de páginas, o número total de itens de dados e a página atual. Isso mostra que a função de paginação foi implementada com sucesso usando o plug-in pageHelper.
Quando usado, PageHelper.startPage(pageNum, pageSize) deve ser colocado no método de consulta de lista, para que o volume de dados e o número total correspondentes sejam encontrados durante a consulta.