choose (when, otherwise)
有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为true,就会执行if标签中的条件。MyBatis提供了choose 元素。if标签是与(and)的关系,而choose比傲天是或(or)的关系。
choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则choose结束。当choose中所有when的条件都不满则时,则执行otherwise中的sql。类似于Java 的switch 语句,choose为switch,when为case,otherwise则为default。
例如下面例子,同样把所有可以限制的条件都写上,方面使用。choose会从上到下选择一个when标签的test为true的sql执行。安全考虑,我们使用where将choose包起来,放置关键字多于错误。
<choose> <when test="param.agentId"> AND o.agentId = #{param.agentId} </when> <when test="param.groupId"> AND o.groupId = #{param.groupId} </when> <when test="param.mendianId"> AND o.mendianId = #{param.mendianId} </when> <when test="param.areaId"> AND o.areaId = #{param.areaId} </when> <when test="param.bigAreaId"> AND o.bigAreaId = #{param.bigAreaId} </when> <when test="param.cityId"> AND o.cityId = #{param.cityId} </when> <otherwise> </otherwise> </choose>
只取多个条件中的一个,相当于switch
相关推荐
Mybatis choose when语句的基本语法结构为:<choose>标签中包含一个或多个<when>标签和一个<otherwise>标签,用于指定不同的条件和对应的SQL语句。例如: ```xml <choose> <when test="cityId == '00' "> <!-- ...
7.4. choose when otherwise标签:类似于Java的switch语句,根据条件执行相应的SQL语句。当没有满足的条件时,执行`otherwise`标签内的内容。 7.5. set标签:在更新语句中,`set`标签用于动态添加`SET`子句的字段,...
2. `<c:choose>`, `<c:when>`, `<c:otherwise>`:类似于Java的switch语句,可以进行多条件分支判断。 **循环标记**: 1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符...
when 元素表示当 when 中的条件满足的时候就输出其中的内容,跟 JAVA 中的 switch 效果差不多的是按照条件的顺序,当 when 中有条件满足的时候,就会跳出 choose,即所有的 when 和 otherwise 条件中,只有一个会...
示例中的`c_choose.jsp`页面展示了如何使用`<c:choose>`、`<c:when>`和`<c:otherwise>`来根据变量`count`的值设置字体颜色: ```jsp ; charset=UTF-8" language="java" %> <c:choose> <c:when test="$...
在本篇中,我们将深入探讨MyBatis的动态SQL功能,包括`if`元素、`choose`、`when`和`otherwise`元素的使用。 首先,`if`元素是动态SQL中最基础的部分,它的作用类似于Java中的`if`语句。在MyBatis中,`if`元素通过`...
choose、when、otherwise 标签 set标签 trim标签 forEach标签 参数传递 单个参数传递 多个参数传递 传入单个实体(JavaBean/Map) 传入多个实体 传入集合 使用场景 在实际开发过程中,我们往往需要编写复杂的SQL语句,...
<c:choose> <c:when test="${page.pageNow - 1 > 0}"> ${page.pageNow - 1}">上一页</a> </c:when> <c:when test="${page.pageNow - 1 <= 0}"> 上一页</a> </c:when> </c:choose> <c:choose> <c:...
when 元素表示当 when 中的条件满足的时候就输出其中的内容,跟 JAVA 中的 switch 效果差不多的是按照条件的顺序,当 when 中有条件满足的时候,就会跳出 choose,即所有的 when 和 otherwise 条件中,只有一个会...
这是Mybatis由浅入深的第3节源码。 动态SQL是Mybatis的亮点功能之一,解决了根据不同条件拼接SQL的繁琐痛苦问题,避免了java代码和sql混在一起,是非常...2. choose (when, otherwise) 3. trim(where, set) 4. foreach
JSTL 以及自定义标签开发相关 JSTL 核心...2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL操作标签:import、url、redirect 使用标签时,一定要在jsp文件头加入以下代码: ...
- **`choose (when, otherwise)`**:类似于 Java 中的 `switch` 语句,可以根据不同的条件选择执行不同的 SQL 片段。 - **`trim (where, set)`**:用于处理 SQL 语句中的前缀或后缀,例如自动添加 `WHERE` 关键词或...
而MyBatis提供的动态SQL功能,则通过一系列内置的标签(如`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<trim>`、`<where>`、`<set>`等)实现了对SQL语句的灵活控制,并将这些标签置于XML映射文件中进行定义,...
这些标签包括`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<set>`, `<foreach>`等。它们允许我们在不编写大量重复代码的情况下,根据变量的值来决定SQL语句的组成部分。 1. `<if>`标签:用于判断条件...
当需要处理多个条件时,我们可以使用`<xsl:choose>`, `<xsl:when>`和`<xsl:otherwise>`元素。`<xsl:choose>`是容器元素,`<xsl:when>`表示一个条件分支,`<xsl:otherwise>`用于捕获所有未匹配的条件。例如,在案例2...
本文将详细介绍JSTL中的条件标签,包括`<c:if>`、`<c:choose>`、`<c:when>`和`<c:otherwise>`。 #### 二、`<c:if>`标签 ##### 1. 作用 `<c:if>`标签用于执行简单的条件判断。当`test`属性指定的表达式结果为`true`...
- `<c:choose>`中只能包含`<c:when>`和`<c:otherwise>`标签。 - 每个`<c:choose>`中至少应有一个`<c:when>`,但`<c:otherwise>`是可选的。 - 所有`<c:when>`标签的条件是互斥的,只有一个会被执行。 - 如果所有`<c:...
**choose/when/otherwise标签**用于实现多分支条件判断。 - **基本用法**: ```javascript <c:choose> <c:when test="${condition1}"> 条件1为真时执行的代码 </c:when> <c:when test="${condition2}"> 条件...
MyBatis通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<set>`, `<foreach>`等标签来实现动态SQL的构建。 1. `<if>`标签:用于判断某个条件是否成立,如果成立则插入相应的SQL片段。例如,当查询...