动态SQL 动态更新 set

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 集合也可以完成。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容