又是一个小问题,却花了一下午在调试,毕竟菜鸟问题多。。
下面是我的sql配置文件,如果直接写 where user_id=#user_id#,能正常执行。
但是当我使用dynamic动态配置,用isNotEmpty去检查user_id,不为空时才加这个条件,却怎么都不执行。
<sqlMap namespace="Users" >
<select id= "getUserInfo" parameterClass ="java.lang.String" resultClass="com.test.beans.User" >
select user_id, user_name, request_ip, login_time from user_online
<!--where user_id=#user_id#-->
<dynamic prepend="where">
<isNotEmpty prepend="and" property="user_id" >
user_id = #user_id#
</isNotEmpty>
</dynamic>
</select>
</sqlMap>
最后的解决办法是,如果dynamic部分只有一个参数时,就去掉property.