mybatis中$和#的区别是什么
1个回答
展开全部
#{}
在预编译的时候是占位符?可以防止SQL注入,
比如sql语句
select
* from
table
where
id=20
编译后是select
* from
table
where
id=?这样别人sql注入就不生效,后面查询的时候直接查询这个,提升查询效率。
${}
在预编译的时候直接将参数赋值到sql中,
select
* from
table
where
id=2
实实在在的参数,编译后select
* from
table
where
id=2就是这样,这个2直接就赋值了,,如果其他人传值为‘’2,wwc=3‘’就sql注入了。每次都要去编译,浪费时间。
在预编译的时候是占位符?可以防止SQL注入,
比如sql语句
select
* from
table
where
id=20
编译后是select
* from
table
where
id=?这样别人sql注入就不生效,后面查询的时候直接查询这个,提升查询效率。
${}
在预编译的时候直接将参数赋值到sql中,
select
* from
table
where
id=2
实实在在的参数,编译后select
* from
table
where
id=2就是这样,这个2直接就赋值了,,如果其他人传值为‘’2,wwc=3‘’就sql注入了。每次都要去编译,浪费时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询