1. 程式人生 > >ibatis $與#的區別,及排序問題

ibatis $與#的區別,及排序問題

在sql配置中#{}#,與${}$

在ibatis中使用這兩種方式進行引數引用,區別為,符號#可以進行與編譯,進行型別匹配,而$不進行資料型別匹配

例:select * from table where name = #name#,其中如果name為varchar型別,#name#就為string型別,如果name 為int型別,那麼#name#就為整型

        $name$,如果name為整型,sql不會錯,如果為varchar型別,就需要改寫成‘$name$’

#可以防止sql注入,使用了prepareStement

$只是簡單的字串拼接,所以會有sql注入的問題,但是也有特殊意義

例如order by排序  order by $orderBy$ desc 如果使用#orderBy# 則只能是正序排列,desc會失效,造成sql的結果與ibatis查詢出的結果不一致