全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

update 更新语句

update 用于更新数据,核心是动态字段更新与条件控制。

基础更新

XML
<update id="updateById" parameterType="com.example.entity.User">
    UPDATE user SET
        username = #{username},
        email = #{email},
        update_time = #{updateTime}
    WHERE id = #{id}
</update>
Java
int rows = mapper.updateById(user);
// rows 为影响行数

动态字段更新

XML
<update id="updateSelective" parameterType="com.example.entity.User">
    UPDATE user
    <set>
        <if test="username != null">username = #{username},</if>
        <if test="email != null">email = #{email},</if>
        <if test="updateTime != null">update_time = #{updateTime},</if>
    </set>
    WHERE id = #{id}
</update>

<set> 标签自动处理 SET 关键字与多余逗号。

注意:不使用 set 标签时,最后一个 if 后面不能有逗号,否则 SQL 语法错误。

条件更新

XML
<update id="updateByEmail">
    UPDATE user SET username = #{username}
    WHERE email = #{email} AND status = 1
</update>

批量更新

XML
<update id="batchUpdate" parameterType="java.util.List">
    <foreach collection="list" item="user" separator=";">
        UPDATE user SET username = #{user.username}
        WHERE id = #{user.id}
    </foreach>
</update>

注意:批量更新需在数据库连接 URL 中添加 allowMultiQueries=true 开启多语句执行。

要点总结

  • update 返回影响行数
  • set 标签自动处理 SET 关键字与逗号
  • if 标签实现动态字段更新,只更新非空字段
  • 批量更新需开启 allowMultiQueries

📝 发现内容有误?点击此处直接编辑

← 上一篇 select 查询语句
下一篇 → resultMap 结果映射
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库