mybatis想给其中某个字段赋成null,mapper层怎么判断这个传进来的null是 需要赋空值还是需要略过不更新

借用网友的描述
更新一条记录一般都是传入一个Entity实例,然后Sql语句通过主键查找要更新的记录、通过字段为Null或为空判断要更新的字段。
但是,这种做法存在Bug:
比如某人在某个允许为空的字段(例如[家庭住址])填写了内容,然后他想删除掉,于是他在页面上把这个字段的内容清空, 然后点保存,然后…他会发现原先的内容居然还在,没有办法清除了!

或许这个实例,大家会说,那我就只判断Null不判断空好了。

可是,假如这个允许为空的字段是一个日期型呢?我们如何判断是要清空这个字段还是保持不变?

或许大家会说,你在前面的业务层肯定能知道是要清空还是要保持不变,但是问题在于,Mapper层要怎么判断呢?判断Null和判断空都不可行了,那么应该怎样判断呢?

直接给dao层的接口方法中的参数前面加上@Param("参数名")就行了。

例如:

我之前在做条件查询的时候需要用到(☄⊙ω⊙)☄

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-16
<if test="name!=null and name!=''">  
    
</if>

这么判断就行

追问

这样的话,给name赋空值时,name=null仍然是传不进去的呀

本回答被网友采纳
第2个回答  2019-06-21
不知这样是否符合业务:DAO层只判断是否为空,若为空,则表示这个字段不需要更新,若要更新为空,业务层传个空字符串

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网