一.介绍

在mybatis-plus中提了构造条件的类Wrapper,它可以根据自己的意图定义我们需要的条件。Wrapper是一个抽象类,一般情况下我们用它的子类QueryWrapper来实现自定义条件查询。

二.常用方法

1.selectOne方法//查询姓名为刘辉军并且性别为男的员工

@Test
public void testSelectOne(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("emp_name","刘辉军");
queryWrapper.eq("emp_gender","男");
Employee employee = employeeMapper.selectOne(queryWrapper);
System.out.println(employee);
}

2.selectList方法

//查询姓名中带有"磊"的并且年龄小于30的员工
@Test
public void testSelectList(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.like("emp_name","磊").lt("age",30);// less than 
List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
employeeList.forEach(System.out::println);
}
//查询姓王的或者性别为男,按年龄的降序排序
@Test
public void testSelectList2(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.like("emp_name","王")
  .or().eq("emp_gender","男")
  .orderByDesc("age");
List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
employeeList.forEach(System.out::println);
}
//查询姓刘的并且(年龄小于35或者邮箱不为空)
@Test
public void testSelectList3(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.likeRight("emp_name","刘")
  .and(wq->wq.lt("age",35).or().isNotNull("email"));
List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
employeeList.forEach(System.out::println);
}

3.selectPage方法

selectPage用于分页,在mybatis-plus中分页有两种,一种是逻辑分页或叫内存分页,另一种是物理分页,内存分页就是把数据全部查询出来放到内存中,返回你想要的一部分数据,当数据量非常庞大时这种方法就行不通了,因为太耗内存,所以一般采用物理分页,需要springboot中加入物理分页配置:(也可以设置到主启动类中)

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

测试:

@Test
public void testSelectPage(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.lt("age",50);
//Page<>(当前页,每页记录数);
Page<Employee> page=new Page<>(1,2);
Page<Employee> employeePage = employeeMapper.selectPage(page, queryWrapper);
System.out.println("当前页:"+ employeePage.getCurrent());
System.out.println("每页记录数:"+employeePage.getSize());
System.out.println("总记录数:"+employeePage.getTotal());
System.out.println("总页数:"+employeePage.getPages());
List<Employee> employeeList = employeePage.getRecords();
employeeList.forEach(System.out::println);
}

4.update方法

//根据姓名和年龄修改记录
@Test
public void testUpdate(){
QueryWrapper<Employee> updateWrapper=new QueryWrapper<>();
updateWrapper.eq("emp_name","刘龙")
     .eq("age",25);
Employee employee=new Employee();
employee.setEmpId(1367720249630318593L);
employee.setName("刘龙");
employee.setEmail("lilong111@.qq.com");
employee.setAge(26);
employee.setEmpGender("女");
int rows=employeeMapper.update(employee,updateWrapper);
System.out.println("受影响的行数:"+rows);
}

可以使用UpdateWrapper 进行更新操作: 
@Test
 public void updateTest3(){

Employee employee =new Employee();
     //设置更新的数据:
     employee.setEmpName("李华");
     employee.setEmail("lihua@qq.com");
     UpdateWrapper<Employee> updateWrapper = new UpdateWrapper<>();
     updateWrapper.eq("age",24);
     updateWrapper.eq("emp_name","何雨柱");
     //参数一: employee 要更新的数据:

//参数二: 设置查询条件:
     employeeMapper.update(employee,updateWrapper);
 }

5.delete方法

//根据姓名和年龄删除记录
@Test
public void testDelete(){
QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("emp_name","刘龙")
  .eq("age",26);
int rows=employeeMapper.delete(queryWrapper);
System.out.println("受影响的行数:"+rows);
}

Mybatis-Plus的条件构造器(Wrapper)相关推荐

  1. Mybatis-Plus实战中的几个条件构造器Wrapper用法

    Mybatis-Plus实战中的几个条件构造器Wrapper用法 其实Wrapper有很多其他的方法,组合起来也是殊途同归,大家可以自己点开源码去查看一些方法的使用说明 @Testvoid conte ...

  2. MybatisPlus学习(四)条件构造器Wrapper方法详解

    https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习(四)条件构造器Wrapper方法详解 文章目录 1.条件构造器 2.Que ...

  3. MP条件构造器Wrapper

    5.1 概述 我们在实际操作数据库的时候会涉及到很多的条件.所以MP为我们提供了一个功能强大的条件构造器 Wrapper .使用它可以让我们非常方便的构造条件. ​ 其继承体系如下: ​ 在其子类Ab ...

  4. Mybatis-Plus 条件构造器Wrapper常用方法

    Mybatis-Plus 条件构造器Wrapper常用方法 下面拼接的也就是sql语句里面where后面的: 1.eq 匹配与键值相等的数据 eq(键,值) 2.ne 匹配与键值不相等的数据 ne(键 ...

  5. MybatisPlus学习 条件构造器Wrapper方法详解

    目录 1.条件构造器 2.AbstractWrapper 2.1.eq.allEq.ne. 2.2.gt.ge.lt.le 2.3.between.notBetween 2.4.like.notLik ...

  6. MybatisPlus条件构造器wrapper方法的使用

    目录 一.Wrapper介绍 二.QueryWrapper的方法 三.目录结构 (1)目录 1.实体类 2.Mapper接口层 3.AnimalServiceImpl服务实现层 4.IAnimalSe ...

  7. SpringBoot项目集成Mybatis Plus(五)条件构造器

    Mybatis Plus 提供了强大的条件构造器,在不写sql映射文件的情况下,完成复杂的查询和修改数据的操作. 条件构造器用于生成sql的where条件,包括 QueryWrapper, Updat ...

  8. MyBatis-Plus Wrapper条件构造器查询

    /*** 通过单个ID主键进行查询*/@Testpublic void selectById() {User user = userMapper.selectById(1094592041087729 ...

  9. Mybatis-Plus中的查(select)和 Wrapper条件构造器-详解 V2.0

    V1.0 已更新为 V-2.0  传送门→ (V-2.0)Mybatis-Plus中的查(select)和QueryWrapper条件构造器​​​​​​​ 前言 本文介绍 mybatis-plus 中 ...

  10. MyBatis-Plus Wrapper条件构造器查询大全

    一.引言 那么那么那么今天来说下MP中强大的条件查询功能. 本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例 二.具体操作 首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询. ...

最新文章

  1. Suring开发集成部署时问题记录
  2. 【alibaba-cloud】Gateway网关
  3. 关于c语言结构体偏移的一点思考
  4. jstat -gcutil 输出结果分析_JVM故障分析
  5. 性能测试入门(六)windows及Linux下做压力测试的注册表设置
  6. Nacos源码BeatTask
  7. BZOJ 4808: 马(二分图最大点独立集)
  8. 挖掘城市ip_抖in杭州嘉年华,原来城市营销还能这么玩!
  9. 重写equals()与hashCode()方法
  10. PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显
  11. Web前端求职必备 常见前端面试题汇总(二)
  12. 计算机算法设计与分析 最长递增子序列
  13. 【C/C++】成员变量的初始化顺序
  14. 设计师们必须要知道的素材网站
  15. python编写程序统计一元人民币换成一分、两分和五分的所有兑换方案个数(用while循环)
  16. 图片加文字怎么弄?介绍几款不错的电脑图片编辑软件
  17. RCTF crypto100(1)
  18. 悟空遥控器 android 5.1,悟空遥控器服务端
  19. Adyen海外支付 - Adyen回调
  20. 1064 朋友数 (C++)

热门文章

  1. iOS设备数据恢复工具:UltData mac中文版
  2. 计算机专业河南大学中外合办分数线,河南大学国际教育学院是中外合作办学吗 分数线多少...
  3. mysql 主键 sql语句_Mysql 增加主键或者修改主键的sql语句操作
  4. 163邮箱接口post登录战网(一)
  5. 洛谷2448 无尽的生命[树状数组 离散化]
  6. Linux强制使用短密码|修改短密码|passwd无效的密码
  7. Linux系列(一): 在虚拟机中安装Ubuntu
  8. PatchMatchNet实践(环境配置、相关软件安装)及理论学习笔记(更新中)
  9. AG7110/AG7111与AG7210方案设计选型方法|AG7110与AG7210设计要求和设计方法|HDMI视频切换器方法全解
  10. 称金币问题: 有27枚金币,其中一个是假的。假的比真的略轻。现在有一个天平,问最少几次可以找出假币?