美文网首页
关于不同参数的xml文件内校验方式

关于不同参数的xml文件内校验方式

作者: 我就要取名叫夏末 | 来源:发表于2018-11-05 19:41 被阅读0次

xml文件接受前端传入的参数,拼合成完整的sql语句进行查询,有时候不必须的参数我们使用if test校验框来筛选:
对于String,如果为null或者为空字符,则略过
对于int,如果为null或者0(偶尔也会带上空字符),则略过。
今天的bug很隐秘。
前端传入参数,如果是string格式的,比如a,而if test校验框中是
<if test="eqAssetStatus!=null and eqAssetStatus!=0">
则会尝试强制转换string格式到int类型进行比较,于是这种情况下就会报错。
错误信息为:java.lang.NumberFormatException: For input string

将后面的(eqAssetStatus!=0)改为(eqAssetType!='')
即可正确校验String格式的参数。
所以要确认不同的参数其类型,这样对应不同的if test校验框

示例:
ea.status前台传入int
ea.type前台传入String
下面分别是他们的校验语句


不同类型参数对应不同校验方式.png

<if test="eqAssetStatus!=null and eqAssetStatus!=0"> and ea.status=#{eqAssetStatus}</if>
<if test="eqAssetType!=null and eqAssetType!=''"> and ea.type like concat('%',concat(#{eqAssetType},'%'))</if>

相关文章

网友评论

      本文标题:关于不同参数的xml文件内校验方式

      本文链接:https://www.haomeiwen.com/subject/wihexqtx.html