dynamic可以去除第一個prepend="and"中的字符(這裏爲and),從而可以幫助你實現一些很實用的功能。具體情況如下:
1.使用dynamic
1.1 xml
select * from Person表
<dynamicprepend="where">
<isNotNull property="name" prepend="and">
name=#name#
</isNotNull>
<isNotNull property="sex" prepend="and">
sex=#sex#
</isNotNull>
</dynamic>
1.2 結果
當name、sex都非null時打出如下的sql語句:
select Person表 where(and)name= ? , and sex= ?
顯然name前的and被自動去除了,很方便吧。
2.不使用dynamic
2.1 xml
如果我把dynamic去掉就會變的很噁心,如下:
select * from Person表
<isNotNull property="name" prepend="and">
name=#name#
</isNotNull>
<isNotNull property="sex" prepend="and">
sex=#sex#
</isNotNull>
2.2 結果
當name、sex都非null時打出如下的sql語句:
select Person表 whereandname= ? , and sex= ?
顯然name前多個and,sql語句錯誤。
3.總結
dynamic會自動去除第一個 prepend="and中的內容(這裏爲and),從而方便一些操作。