问题:
1、更新某单表,实体类有N个参数,但是只传入部分参数进行更新。
2、如果用实体类接收,则没有传的参数会被设置为null ,sql的XML如果用完整的update更新,则会认为进行了整体更新;
3、如果直接传入map进行更新,使用mybatis的
<trim prefix="SET" suffixOverrides=","> <if test="@Ognl@isNotEmpty(createDate)"> create_date = #{createDate} , </if> <if test="@Ognl@isNotEmpty(modifyDate)"> modify_date = #{modifyDate} , </if> <if test="@Ognl@isNotEmpty(addr)"> addr = #{addr} , </if> <if test="@Ognl@isNotEmpty(bond)"> bond = #{bond} , </if>
这样的语句进行判断,则会出现一种情况: 当实际传入createDate = null 的时候,则会被过滤掉。比如,传入3个参数,其中一个是null,那么这样去组装SQL的时候,只会set两个值。
解决思路1:
首先还是需要用map接收,update必传的是ID,那么,首