mybatis-plus的QueryWrapper.lambda()生成的lambdaQueryWrapper进行操作会影响生成它的QueryWrapper吗?
时间: 2023-11-11 19:45:54 浏览: 45
不会影响。在 MyBatis-Plus 中,`QueryWrapper.lambda()` 方法生成的 `LambdaQueryWrapper` 是基于原来的 `QueryWrapper` 的一个封装,用于支持 Lambda 表达式的链式查询。通过 `lambdaQueryWrapper` 对象进行操作,不会对原来的 `QueryWrapper` 产生影响,它们是分开的两个对象。这样设计的目的是为了在链式调用中提供更加灵活和方便的语法。
相关问题
queryWrapper.lambda().in(CollectionUtils.isNotEmpty(query.getStoreSite()), StoreEntity::getStoreSite, query.getStoreSite());的意思
### 回答1:
该代码段是基于MyBatis-Plus框架中的LambdaQueryWrapper实现的一个查询条件构造器,用于生成一个SQL语句中的IN关键字子句,查询StoreEntity实体中StoreSite字段值在query.getStoreSite()集合中的记录。其中,CollectionUtils.isNotEmpty(query.getStoreSite())判断query.getStoreSite()集合是否为空,如果为空,则不添加IN关键字子句。
### 回答2:
queryWrapper.lambda().in(CollectionUtils.isNotEmpty(query.getStoreSite()), StoreEntity::getStoreSite, query.getStoreSite());
这段代码的意思是,在查询条件中使用lambda表达式构建一个in子句。in子句用于查询满足某个条件的数据,其中条件是在指定的字段中包含指定的值。
具体分解如下:
- queryWrapper:是一个查询条件构造器,用于构建查询条件。
- lambda():是queryWrapper的一个方法,用于构造lambda表达式。
- in():是lambda表达式的一个方法,用于构造in子句。
- CollectionUtils.isNotEmpty(query.getStoreSite()):用于判断query.getStoreSite()这个集合是否为空,如果是空则返回false,否则返回true。
- StoreEntity::getStoreSite:是一个方法引用,指定了in子句中要查询的字段。这里使用StoreEntity实体类中的getStoreSite方法。
- query.getStoreSite():是in子句中要查询的值,这个值是从外部传入的。
综合起来,这段代码的意思是:
根据query.getStoreSite()中存储的值,查询StoreEntity表中getStoreSite字段等于这些值的数据。在查询条件中使用lambda表达式构建一个in子句,只有在query.getStoreSite()不为空的情况下才会添加这个in子句。
### 回答3:
该代码的意思是使用QueryWrapper构建查询条件,通过lambda表达式将"in"操作应用于查询字段getStoreSite。这里使用了CollectionUtils.isNotEmpty方法,用于判断query.getStoreSite()是否为空集合。当query.getStoreSite()不为空时,将query.getStoreSite()作为参数传入in方法,进行查询条件的拼接。该代码的目的是根据传入的query.getStoreSite()集合中的元素,在StoreEntity表中匹配相应的getStoreSite字段值。
mybatis-plus方法大全
MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上增加了许多实用的功能,如分页、性能分析、逻辑删除等。MyBatis-Plus 的使用方法和 MyBatis 的使用方法类似,但是 MyBatis-Plus 提供了很多更便捷的方法,下面是一些常用的 MyBatis-Plus 方法:
1. 基本 CRUD 方法
- insert:插入一条记录
- insertBatch:批量插入多条记录
- deleteById:根据 ID 删除一条记录
- deleteByMap:根据 Map 中的条件删除记录
- delete:根据 entity 条件删除记录
- updateById:根据 ID 修改一条记录
- update:根据 entity 条件修改记录
- selectById:根据 ID 查询一条记录
- selectBatchIds:根据 ID 批量查询多条记录
- selectByMap:根据 Map 中的条件查询记录
- selectOne:根据 entity 条件查询一条记录
- selectList:根据 entity 条件查询多条记录
- selectPage:根据 entity 条件分页查询记录
2. Lambda 查询方法
- lambdaQuery:创建 LambdaQueryWrapper 对象,用于构建查询条件
- lambdaUpdate:创建 LambdaUpdateWrapper 对象,用于构建更新条件
- lambdaDelete:创建 LambdaQueryWrapper 对象,用于构建删除条件
3. 分页查询方法
- selectPage:根据 entity 条件分页查询记录
- selectMapsPage:根据 entity 条件分页查询记录,返回 Map 集合
- selectObjsPage:根据 entity 条件分页查询记录,返回 Object 集合
- selectCount:根据 entity 条件查询记录总数
4. 条件构造方法
- QueryWrapper:构造查询条件
- UpdateWrapper:构造更新条件
- LambdaQueryWrapper:构造 Lambda 查询条件
- LambdaUpdateWrapper:构造 Lambda 更新条件
- EntityWrapper:构造查询或删除条件
- AbstractWrapper:基础条件构造器
5. 其他常用方法
- setSqlInjector:设置 SQL 注入器,用于自定义 SQL
- setGlobalConfig:设置全局配置,如 ID 生成器、逻辑删除配置、分页配置等
- setDbColumnUnderline:设置数据库字段是否使用下划线命名方式
- setRefreshMapperInterval:设置定时刷新 Mapper 映射文件的时间间隔
- setSqlParser:设置 SQL 解析器,用于自定义 SQL 解析规则
以上是一些常用的 MyBatis-Plus 方法,如果想深入了解 MyBatis-Plus 的使用方法,可以查看官方文档:https://baomidou.com/guide/
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)