今天做一个简单的修改出现这样的错。
如果传输方式没没错,一般就是传输参数有问题,还有就是mapper书写错误。而笔者是使用的自动生成工具,所以没有仔细看,导致mapper错误。
这是正确的代码
<update id="updateSelective" parameterType="com.hxzy.entity.Member">
update member
<set>
<if test="email != null">
email = #{email,jdbcType=VARCHAR},
</if>
<if test="credit != null">
credit = #{credit,jdbcType=INTEGER},
</if>
<if test="gold != null">
gold = #{gold,jdbcType=DOUBLE},
</if>
<if test="realname != null">
realname = #{realname,jdbcType=VARCHAR},
</if>
<if test="mobile != null">
mobile = #{mobile,jdbcType=VARCHAR},
</if>
<if test="pwd != null">
pwd = #{pwd,jdbcType=VARCHAR},
</if>
<if test="createtime != null">
createtime =#{createtime,jdbcType=INTEGER},
</if>
<if test="istemplate != null">
istemplate = #{istemplate,jdbcType=INTEGER},
</if>
<if test="status != null">
`status` = #{status,jdbcType=INTEGER},
</if>
<if test="experience != null">
experience = #{experience,jdbcType=INTEGER},
</if>
<if test="avatar != null">
avatar = #{avatar,jdbcType=VARCHAR},
</if>
<if test="outgold != null">
outgold = #{outgold,jdbcType=DOUBLE},
</if>
<if test="outgoldinfo != null">
outgoldinfo = #{outgoldinfo,jdbcType=VARCHAR},
</if>
<if test="weixinOpenid != null">
weixin_openid = #{weixinOpenid,jdbcType=VARCHAR},
</if>
<if test="alipayOpenid != null">
alipay_openid = #{alipayOpenid,jdbcType=VARCHAR},
</if>
</set>
where openid = #{openid,jdbcType=VARCHAR}
</update>
这是错误的代码
<update id="updateSelective" parameterType="com.hxzy.entity.Member">
update member
<set>
<if test="email != null">
email = #{email,jdbcType=VARCHAR},
</if>
<if test="credit != null">
credit = #{credit,jdbcType=INTEGER},
</if>
<if test="gold != null">
gold = #{gold,jdbcType=DOUBLE},
</if>
<if test="realname != null">
realname = #{realname,jdbcType=VARCHAR},
</if>
<if test="mobile != null">
mobile = #{mobile,jdbcType=VARCHAR},
</if>
<if test="pwd != null">
pwd = #{pwd,jdbcType=VARCHAR},
</if>
createtime =#{createtime,jdbcType=INTEGER},
<if test="istemplate != null">
istemplate = #{istemplate,jdbcType=INTEGER},
</if>
<if test="status != null">
`status` = #{status,jdbcType=INTEGER},
</if>
<if test="experience != null">
experience = #{experience,jdbcType=INTEGER},
</if>
<if test="avatar != null">
avatar = #{avatar,jdbcType=VARCHAR},
</if>
<if test="outgold != null">
outgold = #{outgold,jdbcType=DOUBLE},
</if>
<if test="outgoldinfo != null">
outgoldinfo = #{outgoldinfo,jdbcType=VARCHAR},
</if>
<if test="weixinOpenid != null">
weixin_openid = #{weixinOpenid,jdbcType=VARCHAR},
</if>
<if test="alipayOpenid != null">
alipay_openid = #{alipayOpenid,jdbcType=VARCHAR},
</if>
</set>
where openid = #{openid,jdbcType=VARCHAR}
</update>
是的代码生成工具没有判断createtime 是否为null,导致错误。