ibatis简略

代码审计看到 系统采用SSI架构,之前没有正式这样运用过,看看实例,记录下ibatis一些注意项:

一、# 和 $符号的区别

1.#把传入的数据当作字符串处理,相当于jdbc预处理中的?,这样,在很大程度上能防止SQL注入

2.$把传入的数据直接生成在SQL里,无法防止SQL注入

3.能用#的就别用$符号


二、iterator

<isPropertyAvailable property="marketIdList">  
    <isNotNull property="marketIdList" prepend=" and marketId in ">  
        <iterate property="marketIdList" conjunction="," close=")" open="(">  
            #marketIdList[]#  
        </iterate>  
    </isNotNull>  
</isPropertyAvailable>

注意 iterate 的property属性,虽然你上面的isNotNull什么的都有这句,但这里一定要写清楚,否则ibatis会找不到你的list的


三、<![CDATA[          ]]>

将特殊字符进行转义,防止SQL语句异常终端。注意使用范围 尽可能小。

你可能感兴趣的:(sql,jdbc,list,ibatis,终端)