下面是一个简单的示例,演示了如何使用这些元素:
<select id="getUser" parameterType="map" resultType="User">
SELECT * FROM users
<where>
<choose>
<when test="id != null">
AND id = #{id}
</when>
<when test="username != null">
AND username = #{username}
</when>
<otherwise>
AND 1=1
</otherwise>
</choose>
</where>
</select>
在上述例子中:
- <choose> 元素包含了多个分支,每个分支由 <when> 元素表示。
- <when> 元素中的 test 属性指定了条件表达式,如果条件为真(非null且非空字符串),则执行 <when> 元素内的内容。
- <otherwise> 元素定义了当所有的 <when> 都不满足条件时的默认分支。
在实际应用中,这种结构可以用于构建根据不同的查询条件生成不同的SQL语句的情况。通过组合 <choose>、<when>、<otherwise> 元素,可以实现更复杂的条件判断和SQL生成逻辑。
需要注意的是,这只是动态SQL的一部分,你还可以结合其他动态SQL元素(如 <if>、<trim> 等)以及参数占位符等来构建更加灵活的SQL语句。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7020/MyBatis