1、${}和#{}
1、首先两者都是用来取参的,区别之处在于${}会把传入的参数直接显示,而#{}会把传入的参数加双引号当字符串处理
2、${}会有SQL注入的问题,#{}因为是预编译所以能够很大程度防止sql注入。
3、能用#{}就不用${}(分情况)。
2、String字符串传参
今天在测试一个东西的时候发现一个之前一直没有注意到的小细节,mybatis传入字符串参数时,使用${}取值会默认找传入参数类型里对应字段的getter/setter方法,会报 There is no getter for property named 'ids' in 'class java.lang.String'。的异常。
解决办法有两种
1、在参数上使用@param注解
2、在xml的if里用”_parameter” 代表参数
。。。。。。
今天太晚先记录下来,详细内容后续补充。。。。。
---------------------
作者:luzaijx
来源:CSDN
原文:https://blog.csdn.net/luzaijx/article/details/80808736
版权声明:本文为博主原创文章,转载请附上博文链接!