更新用户信息
来源:6-7 更新用户个人信息功能开发
suwei666
2017-07-09
为什么更新用户信息的时候要新new一个updateUser对象呢?直接用传过来的user不就可以了吗
4回答
-
徐凌峰
2017-09-24
这里我个人认为<if test="updateTime == null" > update_time = now(), </if> 应该这样吧,因为我们前台不传updateTime过来,这样即使它为null也会调用nwo()函数进行更新啊
012017-09-24 -
suwei666
提问者
2017-07-09
当我添加了
,执行updateByPrimaryKeySelective()方法时,mysql才能执行她的now()函数,
00 -
suwei666
提问者
2017-07-09
前辈,当我DEBUG到这一行时,我发现新new的updataUser和传过来的user内容是一样的,而且他们的updateTime属性都是为空
。执行updateByPrimaryKeySelective()方法时,由于
所以更新时间根本不会执行,那这样是不是有点违背初衷?
00 -
Geely
2017-07-09
hi 同学你好
updateByPrimaryKeySelective
hi同学,我们调用的 是这个方法
<update id="updateByPrimaryKeySelective" parameterType="com.mmall.pojo.User" >
update mmall_user
<set >
<if test="username != null" >
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null" >
password = #{password,jdbcType=VARCHAR},
</if>
<if test="email != null" >
email = #{email,jdbcType=VARCHAR},
</if>
<if test="phone != null" >
phone = #{phone,jdbcType=VARCHAR},
</if>
<if test="question != null" >
question = #{question,jdbcType=VARCHAR},
</if>
<if test="answer != null" >
answer = #{answer,jdbcType=VARCHAR},
</if>
<if test="role != null" >
role = #{role,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = now(),
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>注意看他的实现,自己new之后只更新想更新的。不必要的重复更新就不更新了。
022017-09-24
相似问题