其他分享
首页 > 其他分享> > MP2️⃣基础 CRUD & 分页查询

MP2️⃣基础 CRUD & 分页查询

作者:互联网

1、基础 CRUD

BaseMapper 接口中大量使用到 Wrapper(涉及条件查询)

先不考虑条件查询,对基础 CRUD 进行测试。

① 增

  1. 自动生成 ID,无需设置(主键 ID 生成策略,默认为序列号)。

    User user = new User();
    user.setName("ump1");
    user.setPassword("123456");
    
    userDao.insert(user);
    
  2. 自动根据实体类非 null 的属性,生成动态 SQL

    INSERT INTO mp_user ( id, name, password ) VALUES ( ?, ?, ? )
    

② 删

参数为 id 或 entity,本质上都是通过 ID 进行删除。

同理,批量删除的参数可以是 idList 或 entityList。

Hint:本例中 id 字段是 bigint 类型,对应 Java 的 long 类型。

单个

批量

③ 改

④ 查

2、分页

2.1、分页拦截器

要使分页功能生效,需要配置分页拦截器。

  1. @Configuration:创建 MP 配置类

  2. @Bean:创建拦截器对象,添加分页拦截器

    @Configuration
    public class MybatisPlusConfig {
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor mpi = new MybatisPlusInterceptor();
            mpi.addInnerInterceptor(new PaginationInnerInterceptor());
            return mpi;
        }
    }
    

2.2、使用

从日志可看出,基于 LIMIT 物理分页。

  1. 创建 Page 对象,设置分页参数(当前页码,页面大小)

  2. 分页查询

  3. 获取结果

    IPage<User> page = new Page<>(1, 5);
    userDao.selectPage(page, null);
    
    // 当前页码、页面大小
    System.out.println(page.getCurrent());
    System.out.println(page.getSize());
    // 总页数、总记录数
    System.out.println(page.getPages());
    System.out.println(page.getTotal());
    // 当前页数据
    System.out.println(page.getRecords());
    

附:BaseMapper <T>

面向抽象编程:接口参数的 id 是 Serializable 类型

主键 ID 的所有可能类型,都直接或间接实现了 Serializable 接口。

int insert(T entity);

基础

分页

分页 Page 对象,拼接条件。

<P extends IPage<T>> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

<P extends IPage<Map<String, Object>>> P selectMapsPage(P page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
}

其它

标签:Wrapper,分页,CRUD,Param,id,MP2,user,ID,Constants
来源: https://www.cnblogs.com/secretmrj/p/16298143.html