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语句:
显然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语句:
3.总结
dynamic 会自动去除第一个 prepend="and 中的内容(这里为and), 从而方便一些操作。
摘自:http://hi.baidu.com/taoxincheng0/blog/item/582b7795518d9858d1135e9e.html