mybatis xml 判空
时间: 2023-09-03 15:15:12 浏览: 113
在 MyBatis 的 XML 文件中,我们可以使用 `<if>` 元素来判断条件是否成立,该元素包含一个 test 属性,其值为一个 OGNL 表达式,用于判断条件是否成立。例如:
```xml
<select id="findUsersByName" parameterType="java.lang.String" resultType="User">
SELECT * FROM users
<where>
<if test="name != null and name != ''">
AND name like '%${name}%'
</if>
</where>
</select>
```
在这个例子中,我们使用了 `<if>` 元素来判断参数 `name` 是否为空。如果 `name` 不为空,则拼接 SQL 语句中的条件。注意,OGNL 表达式中可以使用 Java 的语法,例如使用 `!=` 来判断非空。
另外,MyBatis 还提供了 `<choose>` 元素,可以根据多个条件中的一个来执行不同的 SQL 语句。例如:
```xml
<select id="findUsersByCriteria" parameterType="User" resultType="User">
SELECT * FROM users
<where>
<choose>
<when test="name != null and name != ''">
AND name like '%${name}%'
</when>
<when test="email != null and email != ''">
AND email like '%${email}%'
</when>
<otherwise>
AND status = 1
</otherwise>
</choose>
</where>
</select>
```
在这个例子中,我们根据条件中的 `name` 或 `email` 来执行不同的 SQL 语句。如果 `name` 不为空,则使用 `name` 来拼接 SQL 语句中的条件;如果 `email` 不为空,则使用 `email` 来拼接 SQL 语句中的条件;否则,使用 `status` 来拼接 SQL 语句中的条件。注意,`<otherwise>` 元素是可选的,用于指定默认的条件。
阅读全文