2 qq 33578832 qq_33578832 于 2018.05.16 19:21 提问

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

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

3个回答

metaldong
metaldong   2018.05.16 21:19

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

metaldong
metaldong 回复qq_33578832: set标记本身就应该会去掉最后一个逗号的
10 天之前 回复
qq_33578832
qq_33578832 这个不是条件喔,如果实在Where中这样加肯定没问题,set下加这样没有的字段,会报错吧
10 天之前 回复
metaldong
metaldong if外面加SET标签
11 天之前 回复
qq_19972047
qq_19972047   2018.05.17 22:15

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

qq_36037795
qq_36037795   2018.05.17 20:11

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!