mybatis Sql if标签 判断等于null或者空字符串
时间: 2023-11-09 17:11:17 浏览: 506
在 MyBatis 中,可以使用 `<if>` 标签来判断一个参数是否为 `null` 或者空字符串。示例如下:
```xml
<select id="selectUser" resultType="User">
SELECT * FROM user
<where>
<if test="username != null and username != ''">
AND username = #{username}
</if>
</where>
</select>
```
在上面的例子中,我们使用了 `<if>` 标签来判断 `username` 参数是否为 `null` 或者空字符串,如果是,则不加入 SQL 语句中。
注意,这里的判断条件是 `username != null and username != ''`,也就是说,既要判断是否为 `null`,又要判断是否为空字符串。如果只想判断是否为 `null`,可以简化成 `username != null`。如果只想判断是否为空字符串,可以使用 MyBatis 提供的 `StringUtils` 工具类,如下所示:
```xml
<select id="selectUser" resultType="User">
SELECT * FROM user
<where>
<if test="@org.apache.commons.lang3.StringUtils@isNotBlank(username)">
AND username = #{username}
</if>
</where>
</select>
```
在上面的例子中,我们使用了 `StringUtils.isNotBlank()` 方法来判断 `username` 参数是否为空字符串。需要注意的是,这里使用了 `@` 符号来引用 `StringUtils` 类,因为它不是 MyBatis 内置的类。如果你不想使用 `@` 符号,也可以在 MyBatis 配置文件中配置一个别名来简化使用。
阅读全文