登录状态修改密码,发现updateByPrimaryKeySelective接口存在缺陷

来源:6-6 登录状态下重置密码功能开发

暮色如虹

2017-12-15

http://img.mukewang.com/szimg/5a33d49600017cf204840565.jpg

有两点:

  1. 这个接口中因为对update_time字段设置了 if==null 所以导致在更新时,不会修改更新时间。所以我觉得提出“登录状态修改密码为什么不直接用updatePasswrodByUsername”这个问题,您的回答貌似有问题哈~。updatePasswrodByUsername的sql中您就设置了update_time = now()。

  2. 在update的sql中,我觉得应该删除对create_time字段的操作,即使有if==null也应该删除。

不知道我想的对不对,斗胆说出了存在缺陷的话,Geely老师可不要怪罪。

另外:我在视频4-9 mybatis三剑客之mybatis-generator配置小节中发现了多配置了个mmall_cart_item。

http://img.mukewang.com/szimg/5a33d6e700010fbc05150229.jpg

我这是看完前端视频后第三遍看后端一期视频了,发现了小瑕疵就很兴奋,忍不住要贴上来~

写回答

2回答

Geely

2017-12-16

你好同学,你说的很对。

  1. 因为这里是自动生成的,当时没有注意,其实是需要改掉的。把时间的if判断去掉。update每次都要,createtime做个空判断即可。

2.怎么会怪,我是很open的,你说的很对滴。

3. mmall_cart_item 这个是当时为了扩展购物车加的,的确没有删除。后来为了一期给基础差的同学,就合并成一个表了,降低项目及表的复杂性。


真的非常非常赞你!很仔细!也有很强的自主思考力!!

0
1
暮色如虹
非常感谢!
2017-12-16
共1条回复

堇月枝

2017-12-16

谢谢,那个问题还是我问的……经过你的提醒,我回去看了一下,发现确实updatePasswrodByUsername中有修改更新时间,而updateByPrimaryKeySelective没有,因为并没有setUpdateTime,所以用户传过来的User中updateTime应该是等于null的,这样导致了updateByPrimaryKeySelective的更新时间不会更新,我也赞同每调用一次这个方法就自动更新而不设置if比较好。

0
1
暮色如虹
我也是看了你的提问才发的贴。发完贴后才发现,好多同学都问过if==null的问题了。
2017-12-16
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9502 学习 · 8820 问题

查看课程