Mysql根据条件批量更新动态数据
当表字段需要根据id进⾏更新的时候,如果有多条数据需要根据对应的id更新,那么就可以考虑动态更新。
假设需要更新表中的state状态字段,以及需要根据对应的id更新表中的number字段。直接上代码
java代码部分:写java代码部分是为了更好的理解参数在sql语句中是怎样被封装进去的。
世界十大巧克力牌子
@Responbody
@RequestMapping("/XXX.do")
public void XXX(ModelMap model ,HttpServletRequest request,HttpServletRespon respon) {
// 这⾥是要传到mapper中的集合,集合⾥⾯封装的是你要查询的数据的id
List<String> idList = new ArrayList<String>
idList.add("id1");
idList.add("id2");
// 创建⼀个集合,⾥⾯封装你要更新的字段的对象
List<Shelf> shelfList = new ArrayList<Shelf>();
shelf.tId(id1);
shelf.tNumber(number);
vactomyshelfList.add(shelf);smile的意思
// 创建map的过程就省略了,把封装了id的集合放到你的map集合中
map.put("idList",idList);
圣诞祝福语 英文map.put("state","1");
// 把map作为参数传到对应的Mapper中
}
喝彩声sql语句的写法:
<update id = "updateStateAndNumber" parameterType = "hashmap" >
update table(table写⾃⼰的表名称)
t
state = # {state,jdbcType=INTEGER}, (第⼀个state是要更新的表字段名称,第⼆个state是map中的key值)number = ca
id神父英文
<foreach collection="shelfList" item="item" index ="index" >
when #{item.id} then #{item.number}
</foreach>
end
asktocallwhere
id ingentleman什么意思
<foreach collection="idList" item="item" index ="index" open="(" parator="," clo=")"> #{item}
booty music歌词翻译保加利亚首都</foreach>
</update>
number根据对应的id进⾏更新。