避坑经验随笔

在使用数据库SQL更新记录时,应注意限定修改的字段范围,尤其是像create_dt这样的非更新字段。MyBatis-Generator生成的更新语句可能包含所有字段。文章指出,直接用查询结果更新可能导致自动更新字段如update_dt的值错误。解决办法是每次更新使用新对象,避免直接使用查询对象,并且在SQL中排除不应修改的字段。
摘要由CSDN通过智能技术生成

数据库SQL

使用update语句时要控制好要修改的字段范围

使用update语句时要控制好要修改的字段范围,特别是mybatis-generater自动生成的update会将所有的字段都添加进去,但其中像是create_dt是不应该被手动更新的,update_dt应该是自动更新的。在先查询数据保存到一个对象中并且使用同一个对象去执行update动作,就会使update_dt这种自动更新字段失效(被写入了对象中保存的之前查询到的数据值)。

应对方法
  1. 对update方法进行封装,保证每次执行update的参数对象都是一个新new出来的对象,杜绝直接使用从数据库中查询到的数据生成的原始对象。
  2. 删除update语句中不应该被修改的字段,让这些字段永远不会出现在提交给数据库执行的SQL语句中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值