mybatis小知识

本文介绍了如何在MyBatis的Mapper文件中进行条件判断,如检查参数是否等于特定值,并结合IF标签和FOREACH标签处理List数据。同时展示了如何通过CASE语句将查询结果转换为其他值,并利用COUNT统计特定条件的出现次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mapper文件中书写判断参数是否等于某个值

<!-- 正确的,稳定,推荐使用 -->
<if test="newsImage != null and newsImage == '1'.toString()">
	<![CDATA[ and len(newsImage) > 0 ]]>
</if>

<!-- 正确的,稳定,推荐使用 -->
<if test="newsImage != null and newsImage == 'y'.toString()">
	<![CDATA[ and len(newsImage) > 0 ]]>
</if>

判断List不为空且遍历list

<if test="bookIds!=null and bookIds.size()>0">
    and book_id in
    <foreach item="item" index="index" collection="bookIds" open="(" separator="," close=")">
        #{item}
    </foreach>
</if>

将查询出了的结果转成其他值

将结果转成其他值
CASE 
WHEN s.s_sex = '1' THEN '男'
WHEN s.s_sex = '2' THEN '女'
ELSE '其他'
END as sex,

讲表中的s_sex如果为1转成男,2转成女,否者转成其他,并且把s_sex字段转成sex

通过查询出来的结果,用来统计单项值出现的次数

count( CASE WHEN tqcr.sender =1 THEN tqcr.sender ELSE NULL END ) customerMsgCount,

这个原理和上面的很类似,讲查询出来的结果判断是否等于某个值,如果成立,保持原样,否者计为空,然后再通过count来统计非空的值出现的次数,再把结果用字段customerMsgCount来存储。

prefix:给trim标签内的sql语句加上前缀
suffix:给trim标签内的sql语句加上后缀
suffixOverrides:去除多余的后缀,如:suffixOverrides=",",则表示去除trim标签内sql语句多余的逗号后缀
prefixOverrides:去除多余的前缀

<trim prefix="(" suffix=")" suffixOverrides=",">
    <if test="guid != null">
        guid,
    </if>
    <if test="companyGuid != null">
        company_guid,
    </if>
</trim>

打印mysql日志(yml格式)

logging:
  level:
    com.payermax.omc.channel.exchange.dao.mapper: trace

如果要打印Mysql的日志(application.properties文件):mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信仰_273993243

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值