Lambdaquerywrapper和querywrapper的区别
时间: 2023-12-14 12:31:31 浏览: 113
中的LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus框架中的查询构造器,它们的主要区别在于LambdaQueryWrapper支持Lambda表达式,而QueryWrapper不支持。
LambdaQueryWrapper可以使用Lambda表达式来构建查询条件,这样可以避免手写字符串拼接的繁琐和容易出错。例如,使用LambdaQueryWrapper可以这样构建查询条件:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").like(User::getEmail, "@qq.com");
List<User> userList = userMapper.selectList(wrapper);
```
而使用QueryWrapper则需要手写字符串拼接,如下所示:
```
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三").like("email", "@qq.com");
List<User> userList = userMapper.selectList(wrapper);
```
因此,使用LambdaQueryWrapper可以使代码更加简洁、易读和易于维护。
相关问题
LambdaQueryWrapper与QueryWrapper区别
LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus中封装的查询条件构造器,其中LambdaQueryWrapper是基于lambda表达式的,而QueryWrapper是基于字符串的。LambdaQueryWrapper可以通过实体类来构造查询条件,避免手写字符串拼接繁琐,同时也能有效避免SQL注入攻击。而QueryWrapper则需要手动拼接查询条件。
除此之外,LambdaQueryWrapper和QueryWrapper在具体使用上还有一些小区别,例如LambdaQueryWrapper支持直接调用实体类中的属性名作为查询条件,而QueryWrapper则需要通过字符串传入属性名。
LambdaQueryWrapper和QueryWrapper的区别
LambdaQueryWrapper和QueryWrapper是MyBatis-Plus中的两种查询构造器(Wrapper),它们的作用都是用于构建SQL查询条件。
区别如下:
1. LambdaQueryWrapper使用Lambda表达式,可以更加方便地进行条件构造,避免手写字符串拼接出错的风险;而QueryWrapper使用链式调用,需要手写字符串拼接条件。
2. LambdaQueryWrapper在编译期就能够检查Lambda表达式的正确性,而QueryWrapper需要在运行时才能检查字符串拼接的正确性。
3. LambdaQueryWrapper支持实体属性进行条件构造,而QueryWrapper只能使用数据库列名。
4. 在性能上,LambdaQueryWrapper相对QueryWrapper更加高效,因为LambdaQueryWrapper使用了缓存,避免了每次构造条件都要解析Lambda表达式的开销。
总之,使用LambdaQueryWrapper能够更加方便、安全、高效地构造SQL查询条件。
阅读全文
相关推荐
















