Mybatis中case when 配合 trim的使用方法
Mybatis中trim标签的使用
case when的使用方法
demo(批量更新数据)
Mybatis中trim标签的使用
1、作用:一般用于去除sql语句中多余的and关键字、逗号、或者给sql语句前拼接where、set以及values等前缀或后缀
2、属性:
属性    描述
prefix    给sql语句拼接的前缀
suffix    给sql语句拼接的后缀
prefixOverrides    去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
suffixOverrides    去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定
case when的使用方法
1、简单函数:
    CASE expression
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE result
    END

2、搜索函数
    CASE 
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
    ELSE result
    END

总结: CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回result2,当全部不成立则返回else后面的 result,而当有一个成立之后,后面的就不执行了。

demo(批量更新数据)
(批量更新t_cusomer表中的数据,前提批量数据以放入集合中)

<update id="batchUpdateCaseWhen" parameterType="java.util.Map">
1
update t_customer
1
<trim prefix="set" suffixOverrides=",">
       <!-- 拼接case when 这是一种写法 -->
       <foreach collection="list" separator="" item="cus" open="c_age = case id" close="end, ">
        when #{cus.id} then #{cus.age}
        </foreach>
    
        <!-- 拼接case when 这是另一种写法,这种写着更专业的感觉 -->
        <trim prefix="c_name =case" suffix="end,">
            <foreach collection="list" item="cus">
                <if test="cus.name!=null">
                    when id=#{cus.id} then #{cus.name}
                </if>
            </foreach>
        </trim>
        
    </trim>
    
</update>

两种不同写法的语句,实际输出代码:

1)set c_age=case id when #{cus.id} then {cus.age} end

2)set c_name=case when id=#{cus.id} then #{cus.name} end
————————————————
版权声明:本文为CSDN博主「南信院二年级三班优秀数学课代表加三好学生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wohainengqiao/article/details/107831359

mybatis case when相关推荐

  1. case mybatis 不同表_解决mybatis case when 报错的问题

    在mybatis中使用case when进行条件筛选判断时遇到 Failed to process, please exclude the tableName or statementId. 这样的报 ...

  2. mybatis 中case_解决mybatis case when 报错的问题

    在mybatis中使用case when进行条件筛选判断时遇到 Failed to process, please exclude the tableName or statementId. 这样的报 ...

  3. mybatis case when_MyBatis 几种通用的写法

           阅读本文约需要8分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot 2.3 新特性之 ...

  4. mybatis 标准输出日志报错: The setting logImpl is not known. Make sure you spelled it correctly (case sensit

    mybatis核心配置文件中,添加日志的标准输出: 测试报如下错误.(备注:去掉标准日志的配置,测试正常.) ### Error building SqlSession. ### The error ...

  5. mybatis 中case_mybatis 对string类型判断比较 group case when then 综合

    [quote] 特别注意两点 一个是where 的用法 group的用法 case when的用法 这个对string的比较 是单引号 括起test后面的整串, 然后 == 然后双引号括起比较的字符串 ...

  6. mybatis中case when用法以及@Param用法

    https://libusi.blog.csdn.net/article/details/108044060 select  d.tools_name, null as sum,null as num ...

  7. MyBatis原理分析之四:一次SQL查询的源码分析

    上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码   String res ...

  8. Mybatis复习笔记3:映射文件详解

    映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...

  9. Mybatis源码阅读之三

    2019独角兽企业重金招聘Python工程师标准>>> 由前面的系列二分析到MapperMethod的execute方法,我们接着分析MapperMethod.如下List-1: L ...

  10. PageHelper 在 Spring Boot + MyBatis 中合理且规范的使用方法

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 一. 开发准备 1. 开发工具 IntelliJ IDEA ...

最新文章

  1. java抛出自定义异常_10 个深恶痛绝的 Java 异常。。
  2. 电子商务之表示层分析(九)
  3. java因子的计算方法是_JAVA分解质因子
  4. centos 安装nodejs与vue手脚架安装
  5. python中pandas计数_python – Pandas:根据条件计数进行分组
  6. Java调用R与Python
  7. MapXtreme 2005学习(1):创建临时图层
  8. DHU数据结构-顺序表- ADT应用-找匹配
  9. matlab fig 字体,关于.fig文件的font,请教达人,多谢
  10. linux查看wifi信号命令_linux无线网络命令
  11. 年度盘点:2018云栖社区15大影响力技术团队(附100+干货博文)
  12. CSS | 如何达到监听页面滚动的效果?
  13. delphi 注册列表的学习
  14. SpringCloud Gateway 重试路由器的过滤器
  15. 【linux运维】还在为访问服务器工具犯愁吗?这六款Linux常用远程连接工具你肯定得知道
  16. JS:Caesars Cipher(凯撒密码)
  17. C++14学习记录:新语言功能特性
  18. 第五章 指向数组的指针
  19. 数字电子技术基础(上)
  20. 天宇优配|离岸人民币狂拉逾千点!中概股暴涨!B站涨22%

热门文章

  1. Hotspot Object本地方法实现 源码解析
  2. Tomcat-幽灵猫GhostCat漏洞复现
  3. Java8 stream新定义运算
  4. MongoDB find查询语句详解
  5. 关于tomcat项目中poi报错出现的问题
  6. java 动态定时提醒_java实现定时提醒功能
  7. C语言 FlappyBird×马里奥
  8. 【容斥好题】HDU - 5514 F - Frogs
  9. todo已完成任务_总结一下TODO的用法
  10. 高考志愿填报|物联网为何成为【热门选手】?