当前位置: 代码迷 >> 综合 >> MybatisPlus实现分页
  详细解决方案

MybatisPlus实现分页

热度:82   发布时间:2024-02-01 03:59:24.0

select

1、根据id查询记录

//删除操作 物理删除
@Test
public void testDeleteById(){int result = userMapper.deleteById(1231125349744828417L);System.out.println(result);
}

2、通过多个id批量查询

完成了动态sql的foreach的功能

//批量删除
@Test
public void testDeleteBatchIds() {int result = userMapper.deleteBatchIds(Arrays.asList(1,2));System.out.println(result);
}

3、简单的条件查询

通过map封装查询条件

@Test
public void testSelectByMap(){HashMap<String, Object> map = new HashMap<>();map.put("name", "Jone");map.put("age", 18);List<User> users = userMapper.selectByMap(map);users.forEach(System.out::println);
}

注意:map中的key对应的是数据库中的列名。例如数据库user_id,实体类是userId,这时map的key需要填写user_id

分页

MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能

(1)创建配置类

此时可以删除主类中的 @MapperScan 扫描注解

/*** 分页插件*/
@Bean
public PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();
}
(2)测试selectPage分页
测试:最终通过page对象获取相关数据
 
//分页查询
@Test
public void testPage() {//1 创建page对象//传入两个参数:当前页 和 每页显示记录数Page<User> page = new Page<>(1,3);//调用mp分页查询的方法//调用mp分页查询过程中,底层封装//把分页所有数据封装到page对象里面userMapper.selectPage(page,null);//通过page对象获取分页数据System.out.println(page.getCurrent());//当前页System.out.println(page.getRecords());//每页数据list集合System.out.println(page.getSize());//每页显示记录数System.out.println(page.getTotal()); //总记录数System.out.println(page.getPages()); //总页数System.out.println(page.hasNext()); //下一页System.out.println(page.hasPrevious()); //上一页}

控制台sql语句打印:SELECT id,name,age,email,create_time,update_time FROM user LIMIT 0,5 

 

(3)测试selectMapsPage分页:结果集是Map

@Test
public void testSelectMapsPage() {Page<User> page = new Page<>(1, 5);IPage<Map<String, Object>> mapIPage = userMapper.selectMapsPage(page, null);//注意:此行必须使用 mapIPage 获取记录列表,否则会有数据类型转换错误mapIPage.getRecords().forEach(System.out::println);System.out.println(page.getCurrent());System.out.println(page.getPages());System.out.println(page.getSize());System.out.println(page.getTotal());System.out.println(page.hasNext());System.out.println(page.hasPrevious());
}