簡單來講#{} 解析的是佔位符?能夠防止SQL注入, 好比打印出來的語句 select * from table where id=? 然而${} 則是不能防止SQL注入打印出來的語句 select * from table where id=2 實實在在的參數
DAO層的函數方法 sql
[sql] view plain copyapp
對應的Mapper.xml 函數
[sql] view plain copyui
其中,#{0}表明接收的是dao層中的第一個參數,#{1}表明dao層中第二參數,更多參數一致日後加便可。spa
此方法採用Map傳多參數..net
Dao層的函數方法xml
[sql] view plain copyblog
對應的Mapper.xml接口
[sql] view plain copyip
Service層調用
[sql] view plain copy
我的認爲此方法不夠直觀,見到接口方法不能直接的知道要傳的參數是什麼。
Dao層的函數方法
[sql] view plain copy
對應的Mapper.xml
[sql] view plain copy
我的以爲這種方法比較好,能讓開發者看到dao層方法就知道該傳什麼樣的參數,比較直觀,我的推薦用此種方案。