區別:
#{}這種傳參,自帶』』,沒有sql注入的風險,而${}傳入的時候不帶』』,有sql注入額風險
${}的用法:
多用於模糊查詢,或者特定的 需要傳入sql片段的時候,例如:
<
!-- 模糊查詢 --
>
"selectuserbyname" parametertype=
"string" resulttype=
"user"
>
select *
from
user where name like concat
('%'
,'$'
,'%'
)<
/select>
// 存在sql攻擊,需要自行轉譯
@select
("select * from user where $ = #"
) user findbycolumn
(@param
("column"
)string column, @param
("value"
)string value )
;
#{}的用法:
前台傳遞引數大部分都用這種方式,例:
"updateuser" parametertype=
"com.jym.bean.user"
>
update user
set email = #
, hope_job = #
, name = #
, personal_evaluation = #
, personal_skills = #
, phone_number = #
where id = #
<
/update>
<
delete id=
"deleteuser" parametertype=
"com.jym.bean.user"
>
delete
from user where id = #
<
/delete
>
世界上有10種人,一種是懂二進位制的,一種是不懂二進位制的。 Mybatis中的 和 區別與用法
我們經常使用的是 一般解說是因為這種方式可以防止sql注入,簡單的說 這種方式sql語句是經過預編譯的,它是把 中間的引數轉義成字串,舉個例子 select from student where student name 預編譯後,會動態解析成乙個引數標記符?select from student ...
mybatis 與 的區別
public int updatebyid param id int id param name string babyage 注意 此時傳遞的兩個引數的型別不一致 一開始我的xml是這樣寫的 update tf user set baby age where id update tf user s...
Mybatis 與 的區別
select from user where id select from user where id user 123456789 解析後的結果會自動帶上引號。同時在某些情況下,就不能使用 比如 order by,之後只能跟 select from user where id select fro...