mybatis 更新表操作时插入null的问题
我传给mybatis的参数是一个map<mappernamespace="com.renhe.system.core.dao.SysRoleDao"><updateid=...
我传给mybatis的参数是一个map
<mapper namespace="com.renhe.system.core.dao.SysRoleDao">
<update id="updateField" parameterType="map">
UPDATE SYS_ROLE
<trim prefix="SET" suffixOverrides=",">
<if test="roleName != null">ROLENAME=#{roleName},</if>
<if test="description != null">DESCRIPTION=#{description}</if>
</trim>
WHERE ID=#{id}
</update>
</mapper>
我想如果description为空的时候把description字段的值也更新成null
Map map = new HashMap();
map.put("id",100);
map.put("roleName","a");
map.put("description",null);
原来的sysrole表中的description有值,现在想通过上面的方法更新,把description更新成null,但是mybatis判断的时候好像不是判断map中是否有key,而是判断map中的值是否为空.....
我应该怎么写才能roleName更新进去,同时也把description这个字段更新成null呢?不会为了这个功能重新写一个update语句吧.......
是更新成数据库的<NULL>,不是更新成一个字符串"null" 展开
<mapper namespace="com.renhe.system.core.dao.SysRoleDao">
<update id="updateField" parameterType="map">
UPDATE SYS_ROLE
<trim prefix="SET" suffixOverrides=",">
<if test="roleName != null">ROLENAME=#{roleName},</if>
<if test="description != null">DESCRIPTION=#{description}</if>
</trim>
WHERE ID=#{id}
</update>
</mapper>
我想如果description为空的时候把description字段的值也更新成null
Map map = new HashMap();
map.put("id",100);
map.put("roleName","a");
map.put("description",null);
原来的sysrole表中的description有值,现在想通过上面的方法更新,把description更新成null,但是mybatis判断的时候好像不是判断map中是否有key,而是判断map中的值是否为空.....
我应该怎么写才能roleName更新进去,同时也把description这个字段更新成null呢?不会为了这个功能重新写一个update语句吧.......
是更新成数据库的<NULL>,不是更新成一个字符串"null" 展开
4个回答
展开全部
你好,试试把配置改成如下看看,去掉DESCRIPTION那行的if判断
<update id="updateField" parameterType="map">
UPDATE SYS_ROLE
<trim prefix="SET" suffixOverrides=",">
<if test="roleName != null">ROLENAME=#{roleName},</if>
DESCRIPTION=#{description}
</trim>
WHERE ID=#{id}
</update>
展开全部
map.put("description",“null”);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
map.put("description",“null”);
你把所有为空的 赋值为“null” 字符串null即可
你把所有为空的 赋值为“null” 字符串null即可
追问
好像这样只能把值改成"null",不是把数据库的字段设成NULL
追答
寸的就是字符串null 数据库没有所谓的NULL NULL是JAVA的用处
在数据库就对应无记录 你要写NULL 就写字符串 你究竟是想干什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询