閱讀473 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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-02 15:15:03

  上一篇:go ibatis中動態語句的iterate標簽
  下一篇:go 小米華為智能手機未來路不平坦