更新操作

更新操作

为什么直接把前端的数据封装到processFrom实体类中进行update,而是要通过前端传来的formId获取到底层的数据,然后再更新呢?

2/

if(flowList.size()==0){
    throw new BussinessException("PF001","无效的审批流程");
}

这个异常抛出的有意义吗, 前端传来的数据,肯定是已生成的审批流程,前面的数据库持久化了,肯定可以找到吧,抛出异常可以判断flowList==null 这样判断吗?

3/

 ProcessFlow processFlow=processList.get(0);

直接这样写可以,但是后期不续的代码就不可以用了,所以声明在if外侧。 有个问题

ProcessFlow processFlow=null;

这样写,是因为用来接收list的信息,所以不需要实例化,如果需要对新产生的对象进行赋值就需要实例化了。 对吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿莹 2021-05-08 17:56:49

1、同学是想问,为什么直接把前端的数据封装到processFrom实体类中进行update吗?

答:首先,一般我们更改,是只更改具体信息,而不更改id的,如果是重新封装进行update,则使用id自动增长时,id会发生改变的,同学可以想象一下,我们比如去办了个会员卡,当我们修改信息的时候,一般卡号是不会变的,而只改需要修改的信息即可。

2、可以不写这个判断,但是写上会更好,比如,如果有人在提交的过程中通过代码恶意修改了formId,或者,在前台显示后,数据库中直接被修改了,都有可能。

关于是否能写出判断是否为null,是不可以的,因为如果没有查到数据,它会默认返回一个长度为0的集合,也就是,这里不会出现null,同学可以写代码测试一下:

http://img1.sycdn.imooc.com//climg/60965e4a0958972311480188.jpg

http://img1.sycdn.imooc.com//climg/60965e0909f530bf09230181.jpg

http://img1.sycdn.imooc.com//climg/60965deb095a5a7e11530638.jpg

3、

非常抱歉,同学是否可以再说一下,同学是指在哪里写的

ProcessFlow processFlow=processList.get(0);

这个代码呢?可以明确一下类的位置,以及视频讲解的位置吗?

一般由 

ProcessFlow processFlow=processList.get(0);

改为,

ProcessFlow processFlow=null;
*****
processFlow=processList.get(0);

是因为其他作用域中需要用到。或者如同学所说,一开始并不需要对这个对象进行实例化。

祝学习愉快。

  • 提问者 rock221 #1

    则使用id自动增长时,id会发生改变的是什么意思阿? 更改只是对查询到的指定的数据更改,为什么会改变id呢?

    2021-05-08 18:01:09
  • 好帮手慕阿莹 回复 提问者 rock221 #2

    同学你好,很抱歉,老师可能理解错了同学的意思,老师理解成了同学想用新增代替修改

    同学是指这里吗?

    http://img1.sycdn.imooc.com//climg/609674de09fd1d7a10920552.jpg

    首选,前台提交的数据是不全的,比如processId

    ,我们需要更新部分内容,所以,只接收需要修改的部分,然后在原来的基础上修改就可以了,也就是通过formId获取到数据后,把更新的内容在这个基础上更新就可以了。

    祝学习愉快

    2021-05-08 19:27:11
  • 提问者 rock221 回复 好帮手慕阿莹 #3

    因为前端传来的信息没有processID,所以无法指定对哪个审计表进行更新对吧, 一般情况下也不建议直接更新吧, 都是在通过xx查询到底层数据库信息,然后再原有的基础上更该吧。

    2021-05-08 21:52:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师