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