querywrapper和lamdaquerywapper
时间: 2023-09-25 21:16:43 浏览: 76
QueryWrapper和LambdaQueryWrapper是MyBatis-Plus框架中用于构建SQL查询条件的两种方式。
QueryWrapper的使用方式如下:
```java
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.eq(StringUtils.isNotBlank(user.getNickName()), "nick", user.getNickName())
.eq(user.getId() != null,"id", user.getId());
List<User> userList = userDao.selectList(wrapper);
```
而LambdaQueryWrapper的使用方式如下:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.eq(StringUtils.isNotBlank(user.getNickName()), User::getNickName, user.getNickName())
.eq(user.getId() != null, User::getId, user.getId());
List<User> userList = userDao.selectList(wrapper);
```
它们的使用区别在于列名匹配方式不同。QueryWrapper使用的是数据库中的字段名(一般是下划线规则),而LambdaQueryWrapper使用的是Lambda的语法,偏向于对象。LambdaQueryWrapper的一个优点是不用写列名,而是使用纯Java的方式,避免了拼写错误。另外,LambdaQueryWrapper的写法如果有错,则在编译期就会报错,而QueryWrapper需要在运行时才会报错。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [LambdaQueryWrapper和QueryWapper的区别](https://blog.csdn.net/weixin_46130858/article/details/125989769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文