mybatis-plus if 判断不为null 并且不等于空字符串时,当参数为0的时候为什么识别为空字符串
时间: 2024-04-30 22:24:32 浏览: 275
在 Mybatis-Plus 中,如果在使用 `if` 标签判断一个字符串类型的参数是否为空字符串时,需要注意的是,如果参数为 `null` 或空字符串(`""`),则会将其视为空字符串。这是因为在 Mybatis 中,当传入的参数为 `null` 时,会将其转换成一个空字符串,所以在使用 `if` 标签判断时需要注意这一点。
对于参数为 `0` 的情况,可以使用 Mybatis-Plus 提供的 `StringUtils` 工具类中的 `isNotBlank` 方法来判断,该方法会同时判断参数是否为 `null` 和空字符串。例如:
```
<if test="@com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(param)">
<!-- do something -->
</if>
```
这样即可在参数为 `0` 的情况下正确地判断。
相关问题
mybatis-plus判断不等于某字符串
在 MyBatis-Plus 中,可以使用 Wrapper 来进行条件查询,其中包括字符串不等于判断。具体实现可以参考如下代码:
```java
// 示例实体类
public class User {
private Long id;
private String name;
private Integer age;
private String email;
// 省略 getter/setter
}
// 示例查询条件
String name = "Tom";
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.ne(StringUtils.isNotBlank(name), "name", name);
// 说明:
// 1. StringUtils.isNotBlank(str) 判断字符串 str 是否不为空、不为 null、不为全空格字符串
// 2. ne(boolean condition, String column, Object val) 表示当 condition 为 true 时,才添加相应的查询条件
// 3. 在上述代码中,只有 name 不为空时,才会添加 name 不等于指定值的查询条件
```
这样可以实现根据字符串进行不等于判断的查询。需要注意的是,StringUtils 是 Apache Commons Lang3 中的工具类,需要添加相应的依赖。
mybatis-plus字符串判断
在 MyBatis-Plus 中,可以使用 Wrapper 来进行条件查询,其中包括字符串判断。具体实现可以参考如下代码:
```java
// 示例实体类
public class User {
private Long id;
private String name;
private Integer age;
private String email;
// 省略 getter/setter
}
// 示例查询条件
String name = "Tom";
String email = null;
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(name), "name", name)
.eq(StringUtils.isNotBlank(email), "email", email);
// 说明:
// 1. StringUtils.isNotBlank(str) 判断字符串 str 是否不为空、不为 null、不为全空格字符串
// 2. eq(boolean condition, String column, Object val) 表示当 condition 为 true 时,才添加相应的查询条件
// 3. 在上述代码中,只有 name 不为空时,才会添加 name 等于指定值的查询条件
```
这样可以实现根据字符串进行判断的查询。需要注意的是,StringUtils 是 Apache Commons Lang3 中的工具类,需要添加相应的依赖。
阅读全文