dynamic可以去除第一個prepend=”and”中的字符(這裏爲and),從而可以幫助你實現一些很實用的功能。具體情況如下:
1.使用dynamic
1.1 xml
select * from Person
<dynamic prepend="where">
<isNotNull property="name" prepend="and">
name=#name#
</isNotNull>
<isNotNull property="sex" prepend="and">
sex=#sex#
</isNotNull>
</dynamic>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
1.2 結果
當name、sex都非null時打出如下的sql語句:
select Person where (and) name= ? , and sex= ?
- 1
顯然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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.2 結果
當name、sex都非null時打出如下的sql語句:
select Person where and name= ? , and sex= ?
- 1
顯然name前多個and,sql語句錯誤。
- 1
- 2
3.總結
dynamic 會自動去除第一個 prepend=”and中的內容(這裏爲and),從而方便一些操作。
- dynamic可以去除第一個prepend="and"中的字符(這裏爲and),從而可以幫助你實現一些很實用的功能。具體情況如下:
- 1.使用dynamic
- 1.1 xml
- select * from Person表
- <dynamic prepend="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表 where and name= ? , and sex= ?
- 顯然name前多個and,sql語句錯誤。
- 3.總結
- dynamic 會自動去除第一個 prepend="and中的內容(這裏爲and),從而方便一些操作。