queryWrapper.eq的作用
时间: 2024-05-15 12:14:17 浏览: 224
queryWrapper.eq() 是 Mybatis-Plus 中的一种查询构造方法,用于构造等于条件的查询。其作用是将查询条件封装成一个对象,包含查询的字段名和值,然后传递给 Mybatis-Plus 的查询方法,用于构造 SQL 语句中的 WHERE 条件。
具体用法如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三");
List<User> userList = userMapper.selectList(queryWrapper);
```
上述代码表示查询名字为“张三”的用户列表,其中 `queryWrapper.eq("name", "张三")` 表示构造一个等于条件的查询,即查询名字等于“张三”的用户。这样就可以通过 Mybatis-Plus 的查询方法 `selectList()` 查询出符合条件的用户列表。
相关问题
QueryWrapper.eq 值为空
### 处理 MyBatis Plus QueryWrapper.eq 方法参数为空的情况
当 `QueryWrapper.eq` 方法中的值可能为空时,直接调用可能会导致不符合预期的结果或异常。为了确保查询逻辑的健壮性和准确性,在使用前应先判断传入的对象是否为空。
一种常见做法是在设置条件之前进行空值校验:
```java
if (val != null && !"".equals(val.toString().trim())) {
queryWrapper.eq("column_name", val);
}
```
这种方式可以有效防止因传递空字符串或其他形式的无效输入而导致的问题[^1]。
对于更为复杂的场景,比如多个字段都需要做类似的非空验证,则可以通过封装工具类来简化代码重复度高的部分。此外,利用 Java8 的 Optional 类也可以优雅地处理这种情况:
```java
Optional.ofNullable(val).ifPresent(v -> queryWrapper.eq("column_name", v));
```
这不仅提高了代码可读性还增强了安全性[^2]。
如果项目中频繁遇到此类需求,考虑自定义扩展 `AbstractWrapper` 或者创建自己的 Wrapper 工具类也是一个不错的选择。通过重写原有方法实现自动忽略 NULL/Empty 参数的功能[^3]。
queryWrapper.eq用法
queryWrapper.eq()是 MyBatis-Plus(MP)中的一个方法,用于构建查询条件的等值判断。
它的基本用法是:queryWrapper.eq(column, value),其中column为数据库表中的字段名,value为要匹配的值。
示例代码如下:
``` java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John");
List<User> userList = userMapper.selectList(queryWrapper);
```
上述代码意思是查询名字为"John"的用户记录。实际执行的SQL语句大致如下:
``` sql
SELECT * FROM user WHERE name = 'John'
```
eq()方法还支持链式调用,可以构建多个等值条件:
``` java
queryWrapper.eq("name", "John")
.eq("age", 30);
```
上述代码意思是查询名字为"John"且年龄为30的用户记录。实际执行的SQL语句大致如下:
``` sql
SELECT * FROM user WHERE name = 'John' AND age = 30
```
eq()方法还可以传入一个枚举类型的列,方便进行类型安全的查询:
``` java
queryWrapper.eq(User::getName, "John");
```
上述代码与第一个示例代码的效果相同。
总之,eq()方法是用于构建等值条件查询的,可以根据需要设置多个等值条件,并支持链式调用,提供了便捷的查询方式。
阅读全文
相关推荐













