ibatis 的dynamic这样写会有问题,如果有条件成立,出现where 后面会少一个and,这是因为ibatis的dynamic语句会默认把第一个条件成立的predend字段去掉,比如如果下面两个条件都成立,那么最终的语句会变成where status=status的值 and name=name的值,
where
<dynamic prepend=" ">
<isNotEmpty prepend="and" property="status">
status = #status#
</isNotEmpty>
<isNotEmpty prepend="and" property="name">
name = #name#
</isNotEmpty>
</dynamic>
所以必须得写成
where
<dynamic prepend="and">
<isNotEmpty prepend="and" property="status">
status = #status#
</isNotEmpty>
<isNotEmpty prepend="and" property="name">
name = #name#
</isNotEmpty>
</dynamic>
本文介绍了使用ibatis框架时如何正确构建动态SQL语句的方法,避免因条件判断导致的SQL语法错误。通过具体示例说明了如何确保多个条件连接时AND关键字的正确使用。

525

被折叠的 条评论
为什么被折叠?



