Mybatis,对象中某属性为null时,不要更新数据库中对应的字段,该怎么弄?

发布网友 发布时间:2022-04-22 09:53

我来回答

1个回答

热心网友 时间:2023-10-31 02:49

你是否想达到下列目的:

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)附带业务检查,判断是否需要执行

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com