mybatis case when
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相关推荐
- case mybatis 不同表_解决mybatis case when 报错的问题
在mybatis中使用case when进行条件筛选判断时遇到 Failed to process, please exclude the tableName or statementId. 这样的报 ...
- mybatis 中case_解决mybatis case when 报错的问题
在mybatis中使用case when进行条件筛选判断时遇到 Failed to process, please exclude the tableName or statementId. 这样的报 ...
- mybatis case when_MyBatis 几种通用的写法
阅读本文约需要8分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot 2.3 新特性之 ...
- mybatis 标准输出日志报错: The setting logImpl is not known. Make sure you spelled it correctly (case sensit
mybatis核心配置文件中,添加日志的标准输出: 测试报如下错误.(备注:去掉标准日志的配置,测试正常.) ### Error building SqlSession. ### The error ...
- mybatis 中case_mybatis 对string类型判断比较 group case when then 综合
[quote] 特别注意两点 一个是where 的用法 group的用法 case when的用法 这个对string的比较 是单引号 括起test后面的整串, 然后 == 然后双引号括起比较的字符串 ...
- mybatis中case when用法以及@Param用法
https://libusi.blog.csdn.net/article/details/108044060 select d.tools_name, null as sum,null as num ...
- MyBatis原理分析之四:一次SQL查询的源码分析
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String res ...
- Mybatis复习笔记3:映射文件详解
映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...
- Mybatis源码阅读之三
2019独角兽企业重金招聘Python工程师标准>>> 由前面的系列二分析到MapperMethod的execute方法,我们接着分析MapperMethod.如下List-1: L ...
- PageHelper 在 Spring Boot + MyBatis 中合理且规范的使用方法
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 一. 开发准备 1. 开发工具 IntelliJ IDEA ...
最新文章
- java抛出自定义异常_10 个深恶痛绝的 Java 异常。。
- 电子商务之表示层分析(九)
- java因子的计算方法是_JAVA分解质因子
- centos 安装nodejs与vue手脚架安装
- python中pandas计数_python – Pandas:根据条件计数进行分组
- Java调用R与Python
- MapXtreme 2005学习(1):创建临时图层
- DHU数据结构-顺序表- ADT应用-找匹配
- matlab fig 字体,关于.fig文件的font,请教达人,多谢
- linux查看wifi信号命令_linux无线网络命令
- 年度盘点:2018云栖社区15大影响力技术团队(附100+干货博文)
- CSS | 如何达到监听页面滚动的效果?
- delphi 注册列表的学习
- SpringCloud Gateway 重试路由器的过滤器
- 【linux运维】还在为访问服务器工具犯愁吗?这六款Linux常用远程连接工具你肯定得知道
- JS:Caesars Cipher(凯撒密码)
- C++14学习记录:新语言功能特性
- 第五章 指向数组的指针
- 数字电子技术基础(上)
- 天宇优配|离岸人民币狂拉逾千点!中概股暴涨!B站涨22%