美文网首页
关于不同参数的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