Mybatis-Plus的条件构造器(Wrapper)
一.介绍
在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)相关推荐
- Mybatis-Plus实战中的几个条件构造器Wrapper用法
Mybatis-Plus实战中的几个条件构造器Wrapper用法 其实Wrapper有很多其他的方法,组合起来也是殊途同归,大家可以自己点开源码去查看一些方法的使用说明 @Testvoid conte ...
- MybatisPlus学习(四)条件构造器Wrapper方法详解
https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习(四)条件构造器Wrapper方法详解 文章目录 1.条件构造器 2.Que ...
- MP条件构造器Wrapper
5.1 概述 我们在实际操作数据库的时候会涉及到很多的条件.所以MP为我们提供了一个功能强大的条件构造器 Wrapper .使用它可以让我们非常方便的构造条件. 其继承体系如下: 在其子类Ab ...
- Mybatis-Plus 条件构造器Wrapper常用方法
Mybatis-Plus 条件构造器Wrapper常用方法 下面拼接的也就是sql语句里面where后面的: 1.eq 匹配与键值相等的数据 eq(键,值) 2.ne 匹配与键值不相等的数据 ne(键 ...
- MybatisPlus学习 条件构造器Wrapper方法详解
目录 1.条件构造器 2.AbstractWrapper 2.1.eq.allEq.ne. 2.2.gt.ge.lt.le 2.3.between.notBetween 2.4.like.notLik ...
- MybatisPlus条件构造器wrapper方法的使用
目录 一.Wrapper介绍 二.QueryWrapper的方法 三.目录结构 (1)目录 1.实体类 2.Mapper接口层 3.AnimalServiceImpl服务实现层 4.IAnimalSe ...
- SpringBoot项目集成Mybatis Plus(五)条件构造器
Mybatis Plus 提供了强大的条件构造器,在不写sql映射文件的情况下,完成复杂的查询和修改数据的操作. 条件构造器用于生成sql的where条件,包括 QueryWrapper, Updat ...
- MyBatis-Plus Wrapper条件构造器查询
/*** 通过单个ID主键进行查询*/@Testpublic void selectById() {User user = userMapper.selectById(1094592041087729 ...
- Mybatis-Plus中的查(select)和 Wrapper条件构造器-详解 V2.0
V1.0 已更新为 V-2.0 传送门→ (V-2.0)Mybatis-Plus中的查(select)和QueryWrapper条件构造器 前言 本文介绍 mybatis-plus 中 ...
- MyBatis-Plus Wrapper条件构造器查询大全
一.引言 那么那么那么今天来说下MP中强大的条件查询功能. 本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例 二.具体操作 首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询. ...
最新文章
- Suring开发集成部署时问题记录
- 【alibaba-cloud】Gateway网关
- 关于c语言结构体偏移的一点思考
- jstat -gcutil 输出结果分析_JVM故障分析
- 性能测试入门(六)windows及Linux下做压力测试的注册表设置
- Nacos源码BeatTask
- BZOJ 4808: 马(二分图最大点独立集)
- 挖掘城市ip_抖in杭州嘉年华,原来城市营销还能这么玩!
- 重写equals()与hashCode()方法
- PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显
- Web前端求职必备 常见前端面试题汇总(二)
- 计算机算法设计与分析 最长递增子序列
- 【C/C++】成员变量的初始化顺序
- 设计师们必须要知道的素材网站
- python编写程序统计一元人民币换成一分、两分和五分的所有兑换方案个数(用while循环)
- 图片加文字怎么弄?介绍几款不错的电脑图片编辑软件
- RCTF crypto100(1)
- 悟空遥控器 android 5.1,悟空遥控器服务端
- Adyen海外支付 - Adyen回调
- 1064 朋友数 (C++)
热门文章
- iOS设备数据恢复工具:UltData mac中文版
- 计算机专业河南大学中外合办分数线,河南大学国际教育学院是中外合作办学吗 分数线多少...
- mysql 主键 sql语句_Mysql 增加主键或者修改主键的sql语句操作
- 163邮箱接口post登录战网(一)
- 洛谷2448 无尽的生命[树状数组 离散化]
- Linux强制使用短密码|修改短密码|passwd无效的密码
- Linux系列(一): 在虚拟机中安装Ubuntu
- PatchMatchNet实践(环境配置、相关软件安装)及理论学习笔记(更新中)
- AG7110/AG7111与AG7210方案设计选型方法|AG7110与AG7210设计要求和设计方法|HDMI视频切换器方法全解
- 称金币问题: 有27枚金币,其中一个是假的。假的比真的略轻。现在有一个天平,问最少几次可以找出假币?