案例一:if-else

在使用mybatismapper动态sql时,不免会出现if-else的使用,但是好像又没有这种语法,提供的是choose标签代替if-else

例如:

select * from t_stu t
<where><choose><when test="query == 0">and t.status = 1 </when><otherwise>and t.status  NOT IN (9,5)</otherwise></choose>and t.delete_status = 1
</where>

也可以用多个if判断实现:

select * from t_stu t
<where><if test="query == 0">and t.status = 1 </if><if test="query != 0">and t.status  NOT IN (9,5)</if>and t.delete_status = 1
</where>

案例二:if嵌套

在实际编码过程中会有一些判断条件会一直重复使用,一直写在if标签中写的代码会特长,而且臃肿

select * from t_stu t
<where><if test="query == 0 and type = 1">and t.type = 'we' and t.delete = 1</if><if test="query == 0 and type = 2">and t.type = 'wq' and t.delete = 1</if><if test="query == 0 and type = 3">and t.type = 'wr' and t.delete = 1</if>
</where>

变现后:

select * from t_stu t
<where><if test="query == 0"><if test="type = 1">and t.type = 'we'</if><if test="type = 2">and t.type = 'wq'</if><if test="type = 3">and t.type = 'wr'</if></if>and t.delete = 1
</where>

mybatis中的if-else使用及if嵌套使用相关推荐

  1. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  2. MyBatis中#{}和${}的区别

    ------------------------siwuxie095 MyBatis 中 #{} 和 ${} 的区别 1.在 MyBatis 的映射配置文件中,动态传递参数有两种方式: (1)#{} ...

  3. Mybatis中Oracle和Mysql的Count字段问题

    Mybatis中Oracle和Mysql的Count字段问题 我们在进行项目开发时经常会碰到查询总数的问题,所以我们直接是用select count(1) from table来进行查询.那么在Myb ...

  4. MyBatis中jdbcType=INTEGER、VARCHAR作用

    Mapper.xml中 pid = #{pid,jdbcType=INTEGER} pid = #{pid} 都可以用 Mybatis中什么时候应该声明jdbcType? 当Mybatis不能自动识别 ...

  5. Mybatis 中$与#的区别

    1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select i ...

  6. MyBatis中使用流式查询避免数据量过大导致OOM

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天mybatis查询数据库中大量的数据,程序抛出: java.lang.OutOfMemoryError: Java heap s ...

  7. 解决MyBatis中 Could not set property ~ o f ~异常

    解决MyBatis中 Could not set property ~ of ~ public class Role {private Integer id; //idprivate String r ...

  8. 复习下mybatis 中 useGeneratedKeys 和 keyProperty 含义

    今天突然碰到这个错误,让我复习下mybatis 中 useGeneratedKeys 和 keyProperty 含义 nested exception is org.apache.ibatis.ex ...

  9. rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...

  10. mybatis中的resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...

最新文章

  1. iOS经典讲解之获取沙盒文件路径写入和读取简单对象
  2. html财务统计,财务统计.html · 珠烟/layuiadmin-templete - Gitee.com
  3. 脑机接口20年论文集汇总
  4. linux kernel中的中断处理流程
  5. 所谓的二维背包Triangular Pastures POJ 1948
  6. mysql存储过程报错_MySQL存储过程错误No data - zero rows fetched, selected, or processed
  7. 跨站请求伪造(CSRF/XSRF)
  8. 大数据时代,如何才能提高自身竞争力?
  9. Vue中的Js动画与Velocity.js 的结合
  10. Standard Deviation Normal Distribution
  11. 安卓第三阶段实训项目:基于网络乐库音乐播放器V1.0
  12. 修改系统时间,TFS会无法登陆
  13. 中缀表达式 转 前缀表达式
  14. java文件处理(3)——实现文件复制和文件移动
  15. 利用云服务器自动发送天气预报邮件
  16. Twincat3 硬件: 台湾DFI工业控制器,CPU1.1GHZ,RAM512
  17. 申请苹果开发者公司账号和邓白氏编码全流程
  18. poj-3295 Tautology
  19. 使用pano2vr创建全景图
  20. 手机照片误删怎么找回

热门文章

  1. CSDN博客给我带来的一些诱惑和选择机会
  2. 【AI视野·今日NLP 自然语言处理论文速览 第三期】Tue, 8 Jun 2021
  3. STM32H7B0 HAL OSPI配置的一次失败原因分享
  4. POJ1555-Polynomial Showdown
  5. java中eof错误是啥意思_EOFException异常详解
  6. 经纬度数据计算-JavaScript
  7. 基于Springboot+mybatis+mysql+html实现CRM智能办公系统
  8. oracle00312,ORA-00322 ORA-00312 恢复
  9. c语言共阳极数码管的数据,LY-51S(STC89C52R):8个共阴极数码管-程序(1)
  10. 笛卡尔坐标为什么叫Cartesian coordinate而不是Descartes coordinate?