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

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

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

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

或许大家会说,你在前面的业务层肯定能知道是要清空还是要保持不变,但是问题在于,Mapper层要怎么判断呢?判断Null和判断空都不可行了,那么应该怎样判断呢?
展开
 我来答
Gray丶伊卡洛斯
2020-05-05 · 超过10用户采纳过TA的回答
知道答主
回答量:48
采纳率:80%
帮助的人:13.1万
展开全部

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

例如:

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

粉红顽皮蛇tz
2018-03-16 · TA获得超过467个赞
知道小有建树答主
回答量:419
采纳率:85%
帮助的人:154万
展开全部
<if test="name!=null and name!=''">  
    
</if>

这么判断就行

追问
这样的话,给name赋空值时,name=null仍然是传不进去的呀
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaochi5520
2019-06-21
知道答主
回答量:10
采纳率:0%
帮助的人:6.2万
展开全部
不知这样是否符合业务:DAO层只判断是否为空,若为空,则表示这个字段不需要更新,若要更新为空,业务层传个空字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式