为了账号安全,请及时绑定邮箱和手机立即绑定

关于mybatis 配置文件文件中 <![cdata[ ${value} ]]> 是什么意思?

关于mybatis 配置文件文件中 <![cdata[ ${value} ]]> 是什么意思?

杨__羊羊 2019-09-09 13:09:12
mybatis 配置文件文件中 <![cdata[ ${value} ]]> 是什么意思
查看完整描述

4 回答

?
米脂

TA贡献1836条经验 获得超3个赞

像你<![CDATA[ ${value}]]> 如果value是sql语句,那这里就是个动态的sql语句了,最终会执行这条sql语句
select * from student where id = #{id} 如果你这个id也传入个sql语句,这里就会把它当成一个查询值了

查看完整回答
反对 回复 2019-09-14
?
慕盖茨4494581

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++;}



查看完整回答
反对 回复 2019-09-14
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

#{},和 ${}传参的区别如下:
使用#传入参数是,sql语句解析是会加上"",当成字符串来解析,这样相比于$的好处是比较明显对的吧,#{}传参能防止sql注入,如果你传入的参数为 单引号',那么如果使用${},这种方式 那么是会报错的
另外一种场景是,如果要做动态的排序,比如 order by column,这个时候务必要用${}
select * from table order by 'name' ,这样是没用
目前来看,能用#就不要用$,

查看完整回答
反对 回复 2019-09-14
?
慕尼黑的夜晚无繁华

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++;
}
}



查看完整回答
反对 回复 2019-09-14
  • 4 回答
  • 0 关注
  • 1659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信