mybatis中的 和 的區別

2021-10-08 09:45:56 字數 762 閱讀 9167

#{}是直接取值,取到的值會加上單引號標識它在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...