关于mybatis的更新数据的两个方法updateByPrimaryKey 和updateByPrimaryKeySelective

updateByPrimaryKeySelective 和 updateByPrimaryKey两个方法的本质区别,我想讲一个例子来说明。

前端发送给后端的数据,在后端封装成一个BO对象。BO对象和和后端的某一个对象有相似点(有部分属性是相同的),也有差异点!

当我们通过 BeanUtils属性赋值时,将前端的BO对象赋值给后端的实体对象,某些实体对象的属性此时是没有赋值的,原因是差异点!

当我们通过BO赋值给后端的实体对象作为一个条件,在数据库中修改数据时,mybatis提供了updateByPrimaryKey 和 updateByPrimaryKeySelective 两个方法。其中updateByPrimaryKey方法就会根据传递的对象属性对数据库进行全部修改,因为差异点,条件中的某些属性是为空的,该方法会将空值覆盖掉数据库中已有的值。当你只想修改数据库中的某几个字段时,就不要用该方法。

而updateByPrimaryKeySelective方法,只会在数据库中修改传递条件中存在的值,其余的属性保持不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值