querywrapper和lamdaquerywrapper区别
时间: 2023-08-31 13:10:41 浏览: 94
QueryWrapper和LambdaQueryWrapper是MyBatis-Plus框架提供的两种查询构造器,用于方便地进行数据库查询操作。
QueryWrapper是通过链式调用的方式构建查询条件,可以使用类似于SQL语法的方法来编写查询条件。它提供了一系列的方法,如eq、ne、gt、ge、lt、le等,用于设置等于、不等于、大于、大于等于、小于、小于等于等条件。
LambdaQueryWrapper是在QueryWrapper的基础上使用了Lambda表达式来构建查询条件,相比于QueryWrapper,LambdaQueryWrapper更加简洁易用。它利用了Java 8中引入的Lambda表达式特性,可以使用实体类的属性名来构建查询条件,避免了手动编写字符串的繁琐和容易出错。
两者的使用方法类似,都可以通过调用select、from、where等方法来构建查询语句。不同之处在于LambdaQueryWrapper使用Lambda表达式来设置查询条件,更加直观和简洁。例如,可以通过lambda表达式设置等于条件:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "Alice");
```
而使用QueryWrapper,则需要手动编写属性名字符串:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "Alice");
```
综上所述,LambdaQueryWrapper相比QueryWrapper更加简洁易用,适合于使用Lambda表达式的场景。但如果不使用Lambda表达式或者对字符串的编写更加熟悉,QueryWrapper也是一个不错的选择。