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

choose (when, otherwise)相关推荐

  1. jstl c:choose、c:when和c:otherwise标签

    在用spring mvc中,页面前端老用jstl,记录一下. <c:choose>.<c:when>和<c:otherwise>在一起连用,可以实现Java语言中的 ...

  2. 聊聊RibbonLoadBalancerClient的choose方法

    为什么80%的码农都做不了架构师?>>>    序 本文主要研究一下RibbonLoadBalancerClient的choose方法 RibbonLoadBalancerClien ...

  3. mssql 查询当前自增序号_查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读

    Excel中的查找和引用函数主要用于查找工作表中的所需内容,还可以获得工作表中的单元格位置或表格大小等信息,如果将查找和引用函数配合其他的Excel函数使用,将会发挥更强大的功能.常用的查询表中的数据 ...

  4. What are HANA's models of cloud computing, and which should I choose?

    What are HANA's models of cloud computing, and which should I choose? http://searchsap.techtarget.co ...

  5. We can all choose freedom over a job

    We can all choose freedom over a job By Luke Johnson  人人都能创业? Can everyone be an entrepreneur? At fi ...

  6. 安装android studio出现choose an account with administrator

    安装android studio出现choose an account with administrator Windows安装时候会出现的问题 确保你是管理员账号登录,并且拥有管理员权限 确保安装包 ...

  7. 【错误记录】FFmpeg 推流报错 ( FLV does not support sample rate 8000, choose from (44100, 22050, 11025) )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android 平台中 , 先使用 MediaRecorder 将从 麦克风 采集到的 音频压缩到文件中 , 使用 交叉编译的 FFmpeg 可 ...

  8. mybaits十六:使用choose标签实现分支选择

    <!-- 分支选择<choose><when></when><otherwise></otherwise></choose> ...

  9. Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

    报错日志 tomcat里面跑了多个项目,启动时报如下错误: 严重: The web application [/drc] registered the JDBC driver [com.mysql.j ...

  10. machine learning (6)---how to choose features, polynomial regression

    how to choose features, polynomial regression:通过定义更适合我们的feature,选择更好的模型,使我们的曲线与数据更好的拟合(而不仅仅是一条直线) 可以 ...

最新文章

  1. java程序设计_80后程序员,带你深入理解Java基本的程序设计结构,不来你别后悔...
  2. 【转】C++ this指针(直戳本质)
  3. 阿里云 fatal: Authentication failed 退出码 128
  4. CSS浮动、定位与z-index层叠等级详解——响应式Web系列学习笔记
  5. flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo
  6. Daily scrum 11.22
  7. mysql启动后密码_mysql的初级问题-启动后无法正常登陆修改密码
  8. 如何提升大数据分析能力
  9. kong自定义插件(修改官方插件)
  10. 引爆点---绝对内行
  11. HCIP2------BGP1
  12. Pytorch unfold和fold
  13. Newtonsoft.Json.Linq 简单使用
  14. 修改Hosts文件解决文件访问问题
  15. 网络存储服务器接显示器,Unraid下,单核显IGPU实现win10外接显示屏,显卡成功驱动...
  16. EasyExcel合并相同内容单元格及动态标题功能的实现
  17. 2.3 万 Star 的国产装机神器,制作可启动 U 盘
  18. 计算机的运作流程的个人感想
  19. 墨干V1.1.0: 新一代结构化编辑器的雏形
  20. 如何防御黑客的社工?

热门文章

  1. 远程连接 部分基础命令
  2. 联通3g升级4g显示无服务器,中国联通回应关闭2G3G信号 协助2G用户向3G4G网络升级方案 移动关闭2G3G了吗...
  3. 求两个文件的交集、并集和差集 sort和uniq
  4. Windows快捷键笔记
  5. 分享88个NET源码,总有一款适合您
  6. “耳朵人艺术”敲响了中国,也叫醒了世界
  7. iPhone创富志:日进千金 无限遐想的盈利空间
  8. 2020年河南高考--各高校在河南录取分数线预测(本科二批——理科):
  9. 前端跨域请求原理及实践(加qq群:342430957)
  10. 沧海一粟小组(第二次作业)