DEFT1998 2020-05-10 23:36 采纳率: 100%
浏览 1321
已采纳

Spring boot+mybatis项目新增删除查询都没有问题,但是更新时没有错误数据库里面的数据为什么没有修改?

Controller

@PostMapping(value = "/edit")
    @ResponseBody
    @PreAuthorize("hasAuthority('sys:contract:edit')")
    @ApiOperation(value = "编辑合同信息", notes = "保存修改的合同信息")//描述
    public Results<SysContract> updateContract(ContractDto contractDto) {
        SysContract sysContract = null;
        sysContract = contractService.getContract(contractDto.getName());
        if (sysContract != null && !(sysContract.getId().equals(contractDto.getId()))) {
            return Results.failure(ResponseCode.CONTRACT_REPEAT.getCode(), ResponseCode.CONTRACT_REPEAT.getMessage());
        }
        return contractService.updateContract(contractDto);
    }

Service

@Override
    public Results updateContract(ContractDto contractDto) {
        contractDao.updateContract(contractDto);
        log.info("service已经更新"+contractDto.getName());
        return Results.success();
    }

Dao

int updateContract(SysContract contract);

Dao对应的xml

<mapper namespace="com.sxbang.friday.dao.ContractDao">

    <update id="updateContract" parameterType="com.sxbang.friday.model.SysContract">
        update sys_contract t
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="startDate != null">
                startDate = #{startDate},
            </if>
            <if test="expireDate != null">
                expireDate = #{expireDate},
            </if>
            <if test="contractUrl != null">
                contractUrl = #{contractUrl},
            </if>
            updateTime = #{updateTime}
        </set>
        where t.id = #{id}
    </update>

</mapper>

service获取到的数据已经是修改过的了,为什么数据库还是没更新呢?我前两个用户和顾客资料的更新也是这样写的,几乎一样的为什么这个就更新不了呢?有没有大佬能解答一下...

  • 写回答

3条回答 默认 最新

  • zyydomain 2020-05-11 10:16
    关注

    看你的sql是根据id更新的,ContractDto 看下这个实体里id有没有值,如果是null的话找不到就不会更新了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?