4 回答
TA贡献1850条经验 获得超11个赞
value是不是可能包含xml格式的东西,<![CDATA[ ....]]>,这个在xml里表示该部分内容不会被xml解析器解析。
CDATA[ ${value 如果value是sql语句,那这里就是个动态的sql语句了,最终会执行这条sql语句,select from student where id = #{id} 如果你这个id也传入个sql语句,这里就会把它当成一个查询值了<update id = "excute" parameterType="java.lang.String">
<![CDATA[ ${value}]]>
</update><select id = "excute" parameterType="java.lang.String">
select * from student where id = #{id}
</select >include<iostream>
using namespace std;
char *deletechar(char *a)
{int len=strlen(a);
char *b=new char();
int k=0;
for(int i=0;i<len;i++)
{if(a[i]>='0' && a[i]<='9')
{b[k]=a[i];k++;}
TA贡献2021条经验 获得超8个赞
#{},和 ${}传参的区别如下:
使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$的好处是比较明显对的吧,#{}传参能防止sql注入,如果你传入的参数为 单引号',那么如果使用${},这种方式 那么是会报错的
另外一种场景是,如果要做动态的排序,比如 order by column,这个时候务必要用${}
select * from table order by 'name' ,这样是没用
目前来看,能用#就不要用$,
TA贡献1864条经验 获得超6个赞
include<iostream>
using namespace std;
char *deletechar(char *a)
{
int len=strlen(a);
char *b=new char();
int k=0;
for(int i=0;i<len;i++)
{
if(a[i]>='0' && a[i]<='9')
{
b[k]=a[i];
k++;
}
}
添加回答
举报