1、choose标签介绍

choose标签作用条件判断来拼接指定的条件,它和if不太相同,choose似类于java中的switch语句用法,直要有条件成立,其它判断将得不到执行,如果所有条件都不成立则执行otherwise标签中的内容。
格式:
<choose>
  <when test=条件1>
    执行的代码;
  </when>
<when test=条件2>
    执行的代码;
  </when>
  ......
  <otherwise>
      执行的代码;
  </when>
  </otherwise>
</choose>
注意:直要有条件成立,其它判断将得不到执行

2、choose的使用

(1)编写接口方法

/**
     * 查询符合条件的所有user对象 
     * @param user
     * @return
     */
    List<User> getUserDy02(Map map);

(2)sql语句编写

<!--choose:只要一个判断条件成立,其他判断不会执行-->
 <select id="getUserDy02" parameterType="map" resultType="user">
     select * from user
     <where>
         <choose>
             <when test="uname!=null and uname!=''">
                 uname like '%${uname}%'
             </when>
             <when test="sex!=null and sex!=''">
                 and sex=#{sex}
             </when>
             <otherwise>
                 1=1
             </otherwise>
         </choose>
     </where>
 </select>

(3)测试

@Test
 public void demo04(){
     SqlSession sqlSession = MybatisUtils.getSqlSession();
     UserMapper mapper = sqlSession.getMapper(UserMapper.class);
     Map map=new HashMap<String,Object>();
     //map.put("uname","赵");
     //map.put("sex","男");

List<User> userList = mapper.getUserDy02(map);
     System.out.println(userList.size());
     sqlSession.close();
 }

Mybatis的choose标签相关推荐

  1. mybatis choose标签的使用

    有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个.而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件.MyBatis 提供了 choose 元素.if标签是 ...

  2. mybatis choose标签的用法

    先上代码: <choose> <when test="BEGINTIME != null and BEGINTIME != '' and ENDTIME != null a ...

  3. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦 ...

  4. mybatis 支持的标签操作

    62.mybatis支持的标签操作 mybatis只支持include|trim|where|set|foreach|choose|if这几个操作

  5. MyBatis中常见标签的使用

    1. <collection>标签 例如有两张表:user表 role表 那么我们再写实体类User .Role 的对应关系是,一个用户有多个角色,因此,在 User 的实体中加入一个 R ...

  6. MySQL中choose标签的用法

    MySQL中标签的用法 先给大家来个SQL语句: choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中 的 choose 很类似. SELECT ...

  7. Mybatis的where标签,还有这么多知识点

    背景 在上篇文章,我们系统地学习了where 1=1 相关的知识点,大家可以回看<不要再用where 1=1了!有更好的写法!>这篇文章.文章中涉及到了Mybatis的替代方案,有好学的朋 ...

  8. MyBatis 配置 settings 标签

    MyBatis 配置 settings 标签 1. 简介 2. Setting的详细配置信息 3.示例配置 1. 简介 MyBatis 的 是一个极其重要的标签调整,我们可以通过这个标签修改 MyBa ...

  9. Mybatis - xml文件标签中写注释

    Mybatis - xml文件标签中写注释 1.错误场景. ( /* */ 注释 ) 在IDEA中的直接使用快捷键注释 Ctrl + Shift + / 注释. SELECT t.name, t.ag ...

最新文章

  1. 首位猪心移植患者去世!术后存活2个月,创造医学里程碑;官方讣告:哀悼并感谢所作巨大贡献...
  2. 加拿大阿尔伯塔大学韩杰教授招收电子与计算机专业博士/博后
  3. 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1184. 欧拉回路:有向图和无向图的欧拉回路
  4. b350主板支持cpu列表_惊!AMD旧主板通过这个方法竟也能支持PCIe4.0
  5. java -jar 和 java -cp用法
  6. Android 快速开发框架Afinal
  7. SAP UI5应用debug级别的日志打印如何设置
  8. 结合 AOP 轻松处理事件发布处理日志
  9. SQL最全基础教程(有本事别看啊!)
  10. Deecamp20 项目提交【如何用pcdet(second)跑自己的数据】
  11. OK6410移植UBOOT
  12. mysql用户标签表设计_「用户标签」在数据库设计时应该如何存储?
  13. php 九宫格验证码,用php数字九宫格.
  14. C++之父谈C++语言设计规则
  15. actions的使用详解
  16. Android 8.0 Activity启动流程分析
  17. 第七周 项目四-队列数组
  18. 仪控功能测试仿真设备ETest
  19. html5游戏 遥控器按键,遥控器按键功能说明汇总
  20. ESXI6.0 windows虚拟机 硬盘扩容实例...

热门文章

  1. [享学Eureka] 四、Eureka配置之:EurekaClientConfig客户端配置
  2. 陶哲轩:ChatGPT已加入我的数学工作流
  3. 完美日记、钟薛高等新消费品牌的崛起,给传统零售企业带来哪些启发?
  4. 【问题解决】安装pygal但是import pygal报错ImportError: cannot import name ‘Iterable‘ from ‘collections‘
  5. [Java Path Finder][JPF学习笔记][2]在Windows Server上安装JPF
  6. 超简单的C语言贪吃蛇 不闪屏 双缓冲
  7. TM4C USB-HID了解学习(二)
  8. use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching
  9. wincc显示系统时间_在WINCC画面组态中,如何显示系统时间?-工业支持中心-西门子中国...
  10. 淘宝超级钻展怎么做?大神导航,一个神奇的网站,从此开启大神之路!