美文网首页
动态SQL 动态更新 set

动态SQL 动态更新 set

作者: 神豪VS勇士赢 | 来源:发表于2018-07-29 11:22 被阅读6次

    Set优化更新: 会成功拼接条件,最后一个”,”号会被去掉。

    分析:
    所有字段修改:
    update t_blog set title=#{titile},tname=#{tname} where id=#{id}
    如果只需要修改title:[逗号问题]
    update t_blog set title=#{titile}, where id=#{id}

    使用 set标签解决逗号问题
    update t_blog
    <set>
    <if test="title != null"> title = #{title}, </if>
    </set>
    where id=#{id}
    只是把传统set换为<set>标签就可以了,配合<if>标签判断。

    映射文件代码如下所示:
    <update id="updateMyUserInfo" parameterType="java.util.Map" >
    UPDATE t_user_info
    <set>
    <if test="uName !=null">
    u_name=#{uName},
    </if>
    <if test="uPass !=null">
    u_pass=#{uPass}
    </if>
    </set>
    WHERE
    u_id=#{uId}
    </update>

    映射文件对应接口里面的方法如下所示:
    int updateMyUserInfo(UserInfo userInfo);

    测试方法如下所示:

    @Test
    public void testUpdateMyUserInfo(){
    SqlSession sqlSession = SqlSessionFactoryUtilSingleL.getSqlSession();
    UserInfoMapper mapper = sqlSession.getMapper(UserInfoMapper.class);
    UserInfo user=new UserInfo();
    user.setuName("张颖豪");
    user.setuPass("张颖豪");
    user.setuId(12l);
    mapper.updateMyUserInfo(user);
    sqlSession.commit();
    sqlSession.close();
    }

    这里面我们在映射文件里面输入参数是 实体类 换成 Map 集合也可以完成。

    相关文章

      网友评论

          本文标题:动态SQL 动态更新 set

          本文链接:https://www.haomeiwen.com/subject/hhezmftx.html