ibatis中d的 ¥ 和 # 的差别

    添加时间:2013-7-1 点击量:
    在Ibatis中我们应用SqlMap进行Sql查询时须要引用参数,在参数引用中碰到的符号#和¥之间的差别,#可以进行预编译,进行类型匹配,而¥不进行数据类型匹配。

    总结如下: 
    1.#是把传入的数据算作字符串,如#user_id_list#传入的是1,2,3,则sql语句生成是如许,in (1,2,3) ,当然不成以

    2.¥传入的数据直接生成在sql里,如#user_id_list#传入的是1,2,3,则sql语句生成是如许,in(1,2,3) 这就对了. 

    3.#体式格式可以或许很大程度防止sql注入. 

    4.¥体式格式无法体式格式sql注入. 

    5.¥体式格式一般用于传入数据库对象.例如传入表名. 

    6.一般能用#的就别用¥. 


    直观的说 
    #str# 出来的结果是  str 
    ¥str¥ 出来的结果是  str 

    别的  ##只能用在特定的几个处所 ¥¥可以用在任何处所  比如 order by ¥str¥ 

    你甚至可以直接写  ¥str¥  把 order by 这个字串放在str里传进来 
    我们永远不要期待别人的拯救,只有自己才能升华自己。自己已准备好了多少容量,方能吸引对等的人与我们相遇,否则再美好的人出现、再动人的事情降临身边,我们也没有能量去理解与珍惜,终将擦肩而过。—— 姚谦《品味》
    分享到: