IBatis中 $与#的区别与注意事项
<isNotEmpty prepend=" AND " property="TAPPING_MARKS">
TAPPING_MARK IN (#TAPPING_MARKS#)
</isNotEmpty>
#包裹的值 在打印的SQL语句中会自动包裹上引号作为字符串的值:
TAPPING_MARK IN ('AN0691D2')
$包裹的值 在打印的SQL语句中会保持原样不自动包裹单引号
TAPPING_MARK IN (AN0691D2)
不注意的话就会发生这种问题
或是在后台手动给参数包裹了引号作为字符串使用结果变成了TAPPING_MARK IN (''AN0691D2'')
也会出错
DEFECT_CNAME = DEFECT_CNAME.replaceAll(" ", "").replaceAll(",", ",").replaceAll(",", "','");
DEFECT_CNAME = "'" + DEFECT_CNAME + "'";