#{}是直接取值,取到的值會加上單引號標識它在sql中,接續出來後,是乙個值
例:userid=1
select
*from
user
where user_id=
#解析成: select
*from
user
where user_id=』1』
${}也是取值,但是取出來的值,不會加上單引號,解析出阿來後,將會是sql語句中的一部分。
select
*from
user
where user_id=$
解析成: select
*from
user
where user_id=
1
select name,age from user :這是正確的sql語句
column=name
select
# from user; => select 『column』 from user 錯誤
select $ from
user;=
>
select
column
from
user 正確
${}可能就會造成sql注入,用時需謹慎。如果需要用到sql語句拼接的時候,可以考慮用${},一般情況下,都是用#{}
mybatis中的 和 的區別
1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接顯示生成在sql中。如 order by u...
mybatis中的 和 的區別
相當於對資料 加上 雙引號,相當於直接顯示資料 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料...
mybatis中的 和 的區別
1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接顯示生成在sql中。如 order by u...