关于freeMarker创建动态sql中update的多逗号的问题 5C

图片说明
如上图,使用freeMarker创建动态sql的update方法时候,如果最后一个updater创建者不入参的话,最后上一个参数的后面的逗号会打印到sql语句上报错,为什么最后一个参数可以识别出来是最后一个参数了可以自动将逗号去掉,而最后一个不入参的话,倒数第二个(phaseData)后的逗号不能识别去掉呢?求解如何解决该类问题!

3个回答

在Mybatis里面的话需要在if外面加个 xx=xx, yy=yy, 这样加了逗号就不会有问题。

metaldong
lakutony 回复qq_33578832: set标记本身就应该会去掉最后一个逗号的
一年多之前 回复
qq_33578832
码农很疯狂 这个不是条件喔,如果实在Where中这样加肯定没问题,set下加这样没有的字段,会报错吧
一年多之前 回复
metaldong
lakutony if外面加SET标签
一年多之前 回复

update svms_video_task set
PHASE = :phase
<#if result??>
,RESULT =:result

<#if trace??>
,TRACE =:trace

<#if useTime??>
,USETIME =:useTime

<#if phaseData??>
,PHASE_DATA =:phaseData

<#if updater??>
,UPDATER =:updater

WHERE CHANNEL_ID = channelId AND PHASE = :phase

把set改成标签 ,在里面放If , 它会自动删除多余的逗号

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!