现象:
调用deviceService执行update方法后,sql语句执行成功,但是数据库未更新。
解决办法:
经过对比sql语句、查询了数据库、查了service,最后发现是mapper.xml文件中update语句多加了 where id=#{id};因为id是自增,所以删除该条语句即执行成功。
修改前如下:
<update id="updateDev" parameterType="Device"> update device <set> <if test="status!=null and status!='' "> status=#{status}, </if> <if test="capType!=null and capType!='' "> capType=#{capType}, </if> <if test="reportDate!=null and reportDate!='' "> reportDate=#{reportDate}, </if> </set> where id=#{id} </update>
此时报错,修改后如下:
<update id="updateDev" parameterType="Device"> update device <set> <if test="status!=null and status!='' "> status=#{status}, </if> <if test="capType!=null and capType!='' "> capType=#{capType}, </if> <if test="reportDate!=null and reportDate!='' "> reportDate=#{reportDate}, </if> </set> </update>
update更新成功