lambdaQueryWrapper和QueryWrapper 区别和优缺点
时间: 2023-05-18 20:02:44 浏览: 844
lambdaQueryWrapper和QueryWrapper都是MyBatis-Plus中的查询构造器,它们的主要区别在于使用方式不同。QueryWrapper使用链式调用的方式构建查询条件,而lambdaQueryWrapper则使用Lambda表达式的方式构建查询条件。相比较而言,lambdaQueryWrapper更加简洁明了,代码可读性更高,但是QueryWrapper的可扩展性更强,可以更灵活地构建复杂的查询条件。因此,在选择使用哪种查询构造器时,需要根据具体的业务需求和开发习惯进行选择。
相关问题
LambdaQueryWrapper和QueryWrapper区别
LambdaQueryWrapper和QueryWrapper都是MyBatis-Plus框架中的查询封装类,用于构建查询条件。
QueryWrapper是基于字符串的方式来构建查询条件,使用起来相对较繁琐。例如,要构建一个查询条件为age大于等于18的查询语句,可以使用如下代码:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("age", 18);
```
而LambdaQueryWrapper则是基于Lambda表达式的方式来构建查询条件,使用起来更加简洁和直观。同样的查询条件,使用LambdaQueryWrapper可以写成以下形式:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.ge(User::getAge, 18);
```
由于LambdaQueryWrapper使用了Lambda表达式,可以直接引用实体类的属性名,避免了手写字符串的问题,并且在编译期间可以进行类型检查,减少了一些错误发生的可能性。同时,LambdaQueryWrapper还提供了更加丰富的查询方法,如eq、gt、lt等,方便进行复杂的查询操作。
总的来说,LambdaQueryWrapper相比QueryWrapper更加简洁、直观,并且具有更好的类型安全性。因此,在使用MyBatis-Plus框架时,推荐使用LambdaQueryWrapper来构建查询条件。
Lambdaquerywrapper和querywrapper的区别
中的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可以使代码更加简洁、易读和易于维护。