阅读量:0
在 MyBatis 中,可以使用 <if>
元素来对查询语句中的条件进行判断。<if>
元素可以根据条件是否成立来决定是否包含某部分 SQL 语句。下面是一个简单的示例:
<select id="selectUsers" parameterType="map" resultType="User"> SELECT * FROM users <where> <if test="username != null"> AND username = #{username} </if> <if test="age != null"> AND age = #{age} </if> </where> </select>
在上面的示例中,<if>
元素用来判断传入的参数 username
和 age
是否为空,如果不为空,则将对应的条件加入到 SQL 查询语句中。注意 <if>
元素中的 test
属性是条件判断的表达式,可以使用任何合法的 Java 表达式。
除了 <if>
元素外,MyBatis 还提供了 <choose> <when> <otherwise>
结构来实现条件判断。示例如下:
<select id="selectUsers" parameterType="map" resultType="User"> SELECT * FROM users <where> <choose> <when test="username != null"> AND username = #{username} </when> <when test="age != null"> AND age = #{age} </when> <otherwise> AND 1=1 </otherwise> </choose> </where> </select>
在这个示例中,<choose>
元素用来选择条件成立的分支,<when>
元素用来定义具体的条件判断,<otherwise>
元素用来定义默认的情况。