ibatis動態語句中的prepend
關於ibatis動態sql的prepend的屬性,我們需要理解一下幾點
select * from student
<dynamic prepend="where">
<isNotNull property="id" prepend="and">
id = #id#
</isNotNull>
<isNotNull property="name" prepend="and">
name like '%$name$%'
</isNotNull>
</dynamic>
要點一 prepend是添加在動態語句的前麵
and是添加在id = #id#,同樣and是添加在name like '%$name$%'前麵
要點二 dynamic中首個prepend被忽略
按照要點一說法,語句select * from studnet and id = #id#就會出現問題了。其實若<isNotNull>寫在<dynamic>裏,且包含prepend,第一個isNotNull的prepend會被忽略。有的人會說,id不加prepend,變成<isNotNull property="id">?那就錯了,因為name前麵的and會被過濾掉了,會出錯。
要點三 明白了要點二,可以理解拚接語句中遇到的一些錯誤問題
最後更新:2017-04-03 07:57:25