Consulta de paginación MyBatis-Plus

Consulta de paginación MyBatis-Plus

Información de la tabla de datos de usuario de MySQL

identificación nombre años Email crear_tiempo tiempo de actualizacion
1 Nuestro 18 [email protected] 2022-02-22 08:56:15 2022-02-01 08:56:20
2 Jack 20 [email protected] 2022-02-16 09:00:44 2022-02-17 09:00:48
3 Tomás 28 [email protected] 2022-02-10 09:00:52 2022-02-19 09:00:57
4 Arenoso 21 [email protected] 2022-02-14 09:01:02 2022-02-21 09:01:06
5 Billie 24 [email protected] 2022-02-09 09:01:13 2022-02-18 09:01:19
6 YCloud 22 [email protected] 2022-02-22 09:02:19 2022-02-22 09:02:23
7 FormaciónL 23 [email protected] 2022-02-01 09:02:57 2022-02-10 09:03:01
8 Manifestación 22 [email protected] 2022-02-04 09:03:24 2022-02-14 09:03:28
9 Geoffrey 30 [email protected] 2022-01-12 09:04:30 2022-02-10 09:04:34
10 Jorge 27 [email protected] 2022-02-09 09:05:09 2022-02-12 09:05:12
11 William 42 [email protected] 2022-02-22 09:05:45 2022-02-22 09:05:47
12 Cañada 30 [email protected] 2022-02-08 09:07:03 2022-02-28 09:07:06

1. Operación de consulta de MyBatis-Plus

1. Consultar registros por clave principal de identificación (exclusividad):T selectById(Serializable id)

//测试查询
@Test
public void testSelectById(){
    
    
    //通过id=1L主键查询记录(唯一性)
    User user = userMapper.selectById(1L);
    System.out.println(user);
}

[La transferencia de la imagen del enlace externo falló, el sitio de origen puede tener un mecanismo anti-leech, se recomienda guardar la imagen y cargarla directamente (img-RCz1AkjU-1645504787904) (C:\Users\17209\AppData\Roaming\Typora\typora -imágenes-de-usuario\ imagen-20220222085721085.png)]

2. Registros de consultas por lotes a través de la recopilación de ID:List<T> selectBatchIds(Collection idList)

//测试批量查询
@Test
public void testSelectByBatchId(){
    
    
    List<Integer> ids = Arrays.asList(1, 2, 3);
    //通过id集合查询记录
    List<User> users = userMapper.selectBatchIds(ids);
    for (User user : users) {
    
    
        System.out.println(user);
    }
}

3. Consulta una de las condiciones (usando la operación de mapa):selectByMap()

//按条件查询之一:使用map操作
@Test
public void testSelectByMap(){
    
    
    HashMap<String, Object> map = new HashMap<>();
    //自定义要查询的条件
    map.put("name", "YCloud");
    map.put("age", 22);
    //返回值是一个列表,因为可能返回多条记录
    List<User> users = userMapper.selectByMap(map);
    for (User user : users) {
    
    
        System.out.println(user);
    }
}

2. Consulta de paginación (¿cómo usar?)

1. Configurar el complemento de paginación

@Configuration
public class MyBatisPlusConfig {
    
    
    @Bean
    public PaginationInterceptor paginationInterceptor() {
    
    
        return new PaginationInterceptor();
    }
}

En la versión alta de SpringBoot, este método de configuración está desactualizado, por lo que se utiliza otra forma de escribir MybatisPlusInterceptor , de la siguiente manera:

@Configuration
public class MyBatisPlusConfig {
    
    
    //分页插件——新的分页插件,旧版本PaginationInterceptor失效了
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
    
    
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

2. Usa el objeto Página directamente

método describir
getRecords() Consulta los registros de datos de la página actual, el tipo de retorno es una lista
getTotal() número total de registros verificados
getSize() tamaño de página
getPages() paginas totales
hasPrevious() Si la página actual tiene una página anterior
hasNext() Si la página actual tiene una página siguiente
getCurrent() Devuelve el número de página actual
//测试分页查询
@Test
public void testPage(){
    
    
    //参数一:当前页,参数二:页面大小
    //使用了分页插件之后,所有的分页操作也变得简单
    Page<User> page = new Page<>(1, 5);
    userMapper.selectPage(page, null);

    List<User> records = page.getRecords();
    for (User user : records) {
    
    
        System.out.println(user);
    }
    System.out.println("记录总数:" + page.getTotal());
    System.out.println("每一页的大小:" + page.getSize());
    System.out.println("是否有上页:" + page.hasPrevious());
    System.out.println("当前页:" + page.getCurrent());
    System.out.println("总页数:" + page.getPages());
    System.out.println("是否有下页:" + page.hasNext());
}

Registro de impresión de la consola:

==>  Preparing: SELECT COUNT(*) FROM user
==> Parameters: 
<==    Columns: COUNT(*)
<==        Row: 12
<==      Total: 1
==>  Preparing: SELECT id,name,age,email,create_time,update_time FROM user LIMIT ?
==> Parameters: 5(Long)
<==    Columns: id, name, age, email, create_time, update_time
<==        Row: 1, Jone, 18, [email protected], 2022-02-22 08:56:15, 2022-02-01 08:56:20
<==        Row: 2, Jack, 20, [email protected], 2022-02-16 09:00:44, 2022-02-17 09:00:48
<==        Row: 3, Tom, 28, [email protected], 2022-02-10 09:00:52, 2022-02-19 09:00:57
<==        Row: 4, Sandy, 21, [email protected], 2022-02-14 09:01:02, 2022-02-21 09:01:06
<==        Row: 5, Billie, 24, [email protected], 2022-02-09 09:01:13, 2022-02-18 09:01:19
<==      Total: 5

Se puede ver que la capa inferior del complemento de paginación también realiza la paginación a través de la consulta de límite de la base de datos.

Supongo que te gusta

Origin blog.csdn.net/qq_41775769/article/details/123065592
Recomendado
Clasificación