Matlab对象为空时不允许进行属性赋值

Matlab对象为空时不允许进行属性赋值,第1张

在添加、修改或者删除属性时,和引用属性相同,也可以采用方括号([])语法:obj[“name”]=”tom”使用这种方式还有一个额外的特点,就是可以使用非标识符字符串作为属性名称,例如标识符中不允许以数字开头或者出现空格,但在方括号([])语法中却可以使用:obj[“myname”]=”tom”需要注意,在使用这种非标识符作为名称的属性时,仍然要用方括号语法来引用:alert(obj[“myname”])而不能写为:alert(user.myname)。

你是否想达到下列目的:

budgetType 不为null,更新 BUDGET_TYPE_ 字段;

budgetType 为努力时,不更新  BUDGET_TYPE_ 字段;

如果是可以如下做:

<update id="update">

    UPDATE PRO_BUDGET_F

       SET 

           <if test="budgetType != null"> BUDGET_TYPE_ = #{budgetType}</if>

           <if test="budgetType == null"> BUDGET_TYPE_ = BUDGET_TYPE_</if>

     WHERE ID_ = #{id}

</update>

即改变下思路,当budgetType 为null,不更新值(这里BUDGET_TYPE_ = BUDGET_TYPE_

只是把值重新设置一次)

注:上面的方法只是针对你Mybatis部分做出的修改,如果budgetType 为null,将执行一次无用的SQL语句,浪费系统资源,最好的办法是,到调用Mybatis时(一般在DAO)判断budgetType是否为空,为空则不执行数据库 *** 作;

Mybatis只执行SQL *** 作,Dao(或者Service)附带业务检查,判断是否需要执行

两者是有区别的:

1堆栈中:假设声明String s1 = null;String s2 = “”;

其实上栈中会有存放s1,但是堆中没有产生数据;但是对于第二条语句,不仅栈中有s2,堆中也会有“”(空字符串,假如以前存在的话,s2会直接指向,假如没有,就会新建一个);

2方法引用:s1为null,不能调用String的任何方法,否则会报NullPointerException异常;而“”则可以调用String的任何方法,如字符串的拼接或者是求长度等。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11796582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存