开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot): 项目技术点-MybatisPlus 实现分页】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11274
项目技术点-MybatisPlus 实现分页
mp 做四类简单的查询
1.根据 id 查询数据
//根据 id 查询数据
User user=userMapper.selectById(serializable:1231115382920916994L) ;
//进行修改
user.setAge(200);
userMapper.updateById(user);
2、通过多个 id 批量查询
@Test
public void testSelectBatchIds()
List<User> users=userMapper.selectBatchIds(Arrays.asList(1,2,3));
users.forEach(System.out::println);
代码:
//多个 id 批量查询
@Test
public void testSellectltDemo1()
List<User>users=userMapper.selectBatchIds(Arrays.asList(1L,2L,3L));System.out.println(users);
3.简单的条件查询
注:通过 map 封装查询条件
@Test
public void testSelectByMap)
HashMap<String, Object>map=new HashMapo();
map.put("name","Helen");
map.put("age",18);
List<User> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
注意:map 中的 key 对应的是数据库中的列名。例如数据库 user_jid,实体类是 userld,这时 map 的 key 需要填写user_jid
4、分页
MyBatis Plus 自带分页插件,只要简单的配置即可实现分页功能
(1) 第一步:创建配置类(分页插件)
此时可以删除主类中的@Mapperscan 扫描注解
/**
*分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
(2)第二步:编写分页代码,测试:最终通过 page 对象获取相关数据
@Test
public void testSelectPage()
Page<User> page.new Pageo(1,5)
userMapper.selectPage(page,null);
page.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());
(3)调用 mp 方法实现分页查询
//分页查询
@Test
public void testPage() {
//1创建 page 对象
//传入两个参数:当前页和每页显示记录数
Page<User> page = new Page<>(current:1, size:3);
//调用 mp 分页查询的方法
//调用 mp5分页查询过程中,底层封装
//把分页所有数据封装到 page 对象里面
userMapper.selectPage(page,wrapper:null);
//通过 page 对象获取分页数据
System.out.println(page.getCurrent();
//当前页
System.out.println(page.getRecords():
//每页数据1ist 集合
system.out.рrintln(page.getsize();
//每页显示记录数 System.out.println(page.getTotal())://总记录数
System.out.println(page.getPages()):
//总页数
System.out.println(page.hasNext0);
//下一页
System.out.println(page.hasPrevious0):
//上一页
运行结果
Closing non transactional SqlSession[org.apache.ibatis.session.defaults.DefaultSqlSession@30c0d731]
1
[User(id=1,name=Jone,age=18,email=test1@baomidou.com,createTime=null,updateTime=null,version=null),User(id=2,name)
True
false