Java + Spring Boot + Mybatis 实现只更新有修改过的内容

ReagentServiceImpl.java
    // 更新试剂信息
    @Override
    public void update(@NotNull Reagent reagent) {
        if (reagent == null) return;
        Reagent storeReagent = reagentMapper.selectById(reagent.getId());
        if (storeReagent == null) return;
        // 两个对象的内容不相同,才进行更新
        if (!storeReagent.equals(reagent)) {
            // 只更新有修改过的属性,通过数据新旧值对比,如果数据没有变化,设置为 null,就不会进行更新
            if (storeReagent.getReagentCategory() != null && reagent.getReagentCategory() != null &&
                    storeReagent.getReagentCategory().equals(reagent.getReagentCategory())) {
                reagent.setReagentCategory(null);
            }
            if (storeReagent.getReagentNo() != null && reagent.getReagentNo() != null &&
                    storeReagent.getReagentNo().equals(reagent.getReagentNo())) {
                reagent.setReagentNo(null);
            }
            if (storeReagent.getReagentName() != null && reagent.getReagentName() != null &&
                    storeReagent.getReagentName().equals(reagent.getReagentName())) {
                reagent.setReagentName(null);
            }
            if (storeReagent.getReagentSpec() != null && reagent.getReagentSpec() != null &&
                    storeReagent.getReagentSpec().equals(reagent.getReagentSpec())) {
                reagent.setReagentSpec(null);
            }
            if (storeReagent.getReagentUnit() != null && reagent.getReagentUnit() != null &&
                    storeReagent.getReagentUnit().equals(reagent.getReagentUnit())) {
                reagent.setReagentUnit(null);
            }
            if (storeReagent.getBatchNo() != null && reagent.getBatchNo() != null &&
                    storeReagent.getBatchNo().equals(reagent.getBatchNo())) {
                reagent.setBatchNo(null);
            }
            if (storeReagent.getManufacturer() != null && reagent.getManufacturer() != null &&
                    storeReagent.getManufacturer().equals(reagent.getManufacturer())) {
                reagent.setManufacturer(null);
            }
            if (storeReagent.getSupplier() != null && reagent.getSupplier() != null &&
                    storeReagent.getSupplier().equals(reagent.getSupplier())) {
                reagent.setSupplier(null);
            }
            if (storeReagent.getAmount() != null && reagent.getAmount() != null &&
                    storeReagent.getAmount().equals(reagent.getAmount())) {
                reagent.setAmount(null);
            }
            if (storeReagent.getPrice() != null && reagent.getPrice() != null &&
                    storeReagent.getPrice().equals(reagent.getPrice())) {
                reagent.setPrice(null);
            }
            if (storeReagent.getTotal() != null && reagent.getTotal() != null &&
                    storeReagent.getTotal().equals(reagent.getTotal())) {
                reagent.setTotal(null);
            }
            if (storeReagent.getProductionDate() != null && reagent.getProductionDate() != null &&
                    storeReagent.getProductionDate().equals(reagent.getProductionDate())) {
                reagent.setProductionDate(null);
            }
            if (storeReagent.getReceiveDate() != null && reagent.getReceiveDate() != null &&
                    storeReagent.getReceiveDate().equals(reagent.getReceiveDate())) {
                reagent.setReceiveDate(null);
            }
            if (storeReagent.getValidityDate() != null && reagent.getValidityDate() != null &&
                    storeReagent.getValidityDate().equals(reagent.getValidityDate())) {
                reagent.setValidityDate(null);
            }
            if (storeReagent.getDeptId() != null && reagent.getDeptId() != null &&
                    storeReagent.getDeptId().equals(reagent.getDeptId())) {
                reagent.setDeptId(null);
            }
            if (storeReagent.getPurpose() != null && reagent.getPurpose() != null &&
                    storeReagent.getPurpose().equals(reagent.getPurpose())) {
                reagent.setPurpose(null);
            }
            if (storeReagent.getLocation() != null && reagent.getLocation() != null &&
                    storeReagent.getLocation().equals(reagent.getLocation())) {
                reagent.setLocation(null);
            }
            if (storeReagent.getRemark() != null && reagent.getRemark() != null &&
                    storeReagent.getRemark().equals(reagent.getRemark())) {
                reagent.setRemark(null);
            }
            if (storeReagent.getMaterialNo() != null && reagent.getMaterialNo() != null &&
                    storeReagent.getMaterialNo().equals(reagent.getMaterialNo())) {
                reagent.setMaterialNo(null);
            }
            if (storeReagent.getSignCode() != null && reagent.getSignCode() != null &&
                    storeReagent.getSignCode().equals(reagent.getSignCode())) {
                reagent.setSignCode(null);
            }
            reagentMapper.update(reagent);
        }
    }
ReagentMapper.xml
    
    
        update Reagent
        
            
                rea_TypeName = #{reagentCategory},
            
            

            
            
                rea_Name = #{reagentName},
            
            
                rea_Spec = #{reagentSpec},
            
            
                rea_unit = #{reagentUnit},
            
            
                rea_BatchNo = #{batchNo},
            
            
                rea_ManufacturerName = #{manufacturer},
            
            
                rea_ProviderName = #{supplier},
            
            
                rea_Amount = #{amount},
            
            

            
            
                rea_SubTotal = #{total},
            
            
                rea_ProduceDate = #{productionDate},
            
            

            
            
                rea_OverdueDate = #{validityDate},
            
            
                rea_DeptID = #{deptId},
            
            

            
            
                rea_Location = #{location},
            
            
                rea_Memo = #{remark},
            
            
                rea_MaterialID = #{materialNo},
            
            
                rea_br = #{signCode},
            
        
        where rea_ID = #{id}
    

你可能感兴趣的:(java,spring,boot,mybatis)