Mybatis-Plus条件构造器
一、前言
mybatis-plus提供了强大的条件构造器。这里简要介绍了条件构造器的结构与关系,并通过简要的示例描述查询、删除和修改操作的条件构造器实现方式。
二、条件构造器结构
备注
- 绿色框为抽象类abstract
- 蓝色框为正常class类,可new对象
- 黄色箭头指向为父子类关系,箭头指向为父类
- Wrapper : 条件构造父类。
- AbstractWrapper :QueryWrapper(LambdaQueryWrapper)和UpdateWrapper(LambdaUpdateWrapper) 的父类用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件。
- AbstractLambdaWrapper :Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
- LambdaQueryWrapper :Lambda形式的查询Wrapper。
- LambdaUpdateWrapper :Lambda 形式的更新Wrapper。
- QueryWrapper :继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取。 - UpdateWrapper : 继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaUpdateWrapper, 可以通过 new UpdateWrapper().lambda() 方法获取。
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为。
三、sql拼接方法
四、示例
- 查询
//查询第一条纪律
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lld");
User user = mapper.selectOne(queryWrapper);//查询总记录数
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lld");
Integer count = mapper.selectCount(queryWrapper);//查询所有记录:返回实体列表 List<user>
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lld");
List<User> list=mapper.selectList(queryWrapper );//查询所有记录:返回map列表 List<Map<String,Object>>
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lld");
List<User> list=mapper.selectMaps(queryWrapper);//查询所有记录并翻页:返回Ipage<entity>
Page<User> page = new Page<>(1, 5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
IPage<User> userIPage = mapper.selectPage(page, queryWrapper);//查询所有记录并翻页:返回Ipage<Map<String, Object>>
Page<User> page = new Page<>(1, 5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
IPage<Map<String, Object>> mapIPage = mapper.selectMapsPage(page, queryWrapper);//查询所有记录:lambda
LambdaQueryWrapper<User> lambdaQuery=Wrappers.<User>lambdaQuery();
lambdaQuery.likeRight(User::getName,"杨").and(lqw->lqw.lt(User::getAge,40).or().isNostNull(User::getEmail));
List<User> userList=userMapper.selectList(lambdaQuery);
userList.forEach(System.out::println)//查询所有记录:chain
List<User> userList=new LambdaQueryChainWrapper<User>(userMapper).like(User::getName,"杨").ge(User::getAge,20).list();
- 更新
//形式一:wrapper
UpdateWrapper<User> updateWrapper=new UpdateWrapper<User>();
updateWrapper.eq("id",1);
User user=new User()
user.setName("张三");
int result=baseMapper.update(user,updateWrapper);//形式二:whereWrapper
User whereUser=new User();
whereUser.setId(1);
UpdateWrapper<User> updateWrapper=new UpdateWrapper<User>(whereUser);
User user=new User()
user.setName("张三");
int result=baseMapper.update(user,updateWrapper);//形式三:lambda
LambdaUpdateWrapper<User> lambdaUpdateWrapper=Wrappers.<User>lambdaUpdate();
lambdaUpdateWrapper.eq(User::getId,1).set(User::getName,"张三");
int result=baseMapper.update(null,lambdaUpdateWrapper);//形式四:链式
boolean update=new LambdaUpdateChainWrapper<User>(userMapper).eq(User::getId,1).set(User::getName,"张三").update();
- 删除类似于2,以下只举一个示例。
LambdaQueryWrapper<User> lambdaQuery=Wrappers.<User>lambdaQuery();
lambdaQuery.eq(User::getAge,27).or().gt(User::getAge,41);
int rows=userMapper.delete(lambdaQuery);
- 补充
//分页插件
@Configuration
public class MybatisPlusConfig{@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}
五、参考
https://mybatis.plus/
https://blog.csdn.net/m0_37034294/article/details/82917234
https://www.cnblogs.com/liuyangfirst/p/9739063.html
Mybatis-Plus条件构造器相关推荐
- mybatis plus 条件构造器queryWrapper学习
mybatisPlus官网地址:简介 | MyBatis-Plus为简化开发而生https://mp.baomidou.com/guide/ 一.queryWrapper是什么 queryWrappe ...
- SpringBoot项目集成Mybatis Plus(五)条件构造器
Mybatis Plus 提供了强大的条件构造器,在不写sql映射文件的情况下,完成复杂的查询和修改数据的操作. 条件构造器用于生成sql的where条件,包括 QueryWrapper, Updat ...
- mybatis plus条件拼接
mybatis plus条件拼接 条件构造器 案例table AbstractWrapper allEq:全部eq(或个别isNull) eq:等于 = ne:不等于 <> gt:大于 & ...
- 第 4 章 MybatisPlus 条件构造器
第 4 章 MybatisPlus 条件构造器 1.CRUD API 的思考 对于 BaseMapper 中基本 CRUD 方法的思考 继承了 BaseMapper 接口后,我们只能获得基本的 CRU ...
- Java中使用es条件构造器BoolQueryBuilder
前言 由于es在java中查询没法像mybatis那样方便,而且es的构造器使用也比较繁琐,理解不是很方便,所以写一篇文章来记录es构造器BoolQueryBuilder查询时各种条件的构造的正确姿势 ...
- MyBatisPlus 中常用的 条件构造器(LambdaQueryWrapper、LambdaUpdateWrapper)使用
LambdaQueryWrapper LambdaQueryWrapper 是查询条件过滤器,需要查询数据时使用. 案例如下: /*** 根据条件查询分类数据,例如:根据type = 1来查询菜品分类 ...
- Mybatis-Plus实战中的几个条件构造器Wrapper用法
Mybatis-Plus实战中的几个条件构造器Wrapper用法 其实Wrapper有很多其他的方法,组合起来也是殊途同归,大家可以自己点开源码去查看一些方法的使用说明 @Testvoid conte ...
- MyBatis-Plus Day2 Wapper 核心功能 条件构造器 测试
MyBatis-Plus Day2 核心功能 条件构造器 之前搭建的在上一篇博客中已经写好了. 链接:https://blog.csdn.net/weixin_45821811/article/det ...
- MyBatisPlus3.x中使用条件构造器查询某一天的记录数时的日期格式化注意
场景 前端传过来时间,比如是'2019-05-09' 后台使用条件构造器查询数据库中某一天的记录数. 因为涉及到时间格式的问题,如果直接用时间字段是否相等来判断则不行.所以这里使用MyBatisPlu ...
- MyBatisPlus条件构造器Condition的用法
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 基础搭建: https://blog.csdn.net/B ...
最新文章
- anaconda安装scrapy失败的解决方法(2020.7.7)
- XLS封装成EXE制作全攻略
- pandas将字典转换成dataframe,两重字典
- valgrind工具使用详解
- Chrome用户不喜新版:宁用其他浏览器也不要用旧版本
- CDN缓存服务器现状
- 设计模式:高性能IO之Reactor模式
- Spring配置redis(自定义方法)
- 转:《潜伏》映射办公室潜规则
- LINUX下载编译OpenSSL
- oracle删除临时会话表,新一代QQ群机器人
- 计算机主机前声音口怎么设置吗,电脑前面的插孔没声音怎么设置
- 关于163邮箱,上传附件,本地验证文件大小的问题。
- Java招聘网站源码+页面
- 通过经纬度计算两点直线距离的计算方法
- 在bluehost如何使用WHM面板和ssh链接添加附加IP
- html提取正文,网页正文提取工具Readability
- Mac OS X Lion 系统中检测 WiFi 信号强度
- Spark任务的某个Stage卡住不动问题
- 【全志R329-NPU助力】Maix-Speech为嵌入式环境设计的离线语音库
热门文章
- Java技术体系简介
- 计算机的选材标准,GBT26642-2011无损检测金属材料计算机射线照相检测方法国家标准.pdf...
- cad图纸问号怎么转换文字_CAD打开图纸后为什么文字显示为问号?怎么解决?
- 【学习笔记】C# 动态系统托盘图标的实现 - NotifyIcon控件
- Visio应用视频教程(上)-游峰-专题视频课程
- Photoshop实例视频教程
- javaSE(完整版)
- nutch mysql hadoop_nutch+hadoop 配置使用
- Access数据库对象包括哪六个?Access与 Excel 最重要的区别是什么?
- 基于matlab的倒立摆设计,基于MATLAB的倒立摆系统控制系统设计与仿真.doc