示列
在mapper.xml里代码为
<update id="updateStatus" parameterType="java.lang.String">
UPDATE table_name
SET apistatus = CASE apistatus
WHEN 'Y' THEN 'N'
WHEN 'N' THEN 'Y'
ELSE apistatus
END
WHERE id in(#{ids})
</update>
接口调用代码为:
@Override public void updateStatus(String ids) { Mapper.updateStatus(ids); }
控制台信息为:
==> Preparing: UPDATE table_nameSET apistatus = CASE apistatus WHEN 'Y' THEN 'N' WHEN 'N' THEN 'Y' ELSE apistatus END WHERE id IN (?)
==> Parameters: 1797561729169264642,1797566300528611330(String)
<== Updates: 0
不见报错信息,说明sql语句没有问题,并且sql语句在数据库是可以执行成功,数据也更新成功。
找到问题:
mapper.xml 文件sql语句变量设置“#{ids}”表达啥问题;最后把“#{ids}”换成“${}”,接口调完,数据更新成功;
正确代码:
<update id="updateStatus" parameterType="java.lang.String">
UPDATE jfjfz_gjsz
SET apistatus = CASE apistatus
WHEN 'Y' THEN 'N'
WHEN 'N' THEN 'Y'
ELSE apistatus
END
WHERE id in(${ids})
</update>