如何正确使用MyBatis 3.4.6的foreach遍历map进行批量更新操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5319个文字,预计阅读时间需要22分钟。
长时间没编码了!最近开始编码,遇到一个难题!就是一个批量修改的问题,涉及到MyBatis的``的使用。
当时使用场景是,前端通过传递一个带有多个字符串id的字符串,传递给后端,后端需要根据这些id修改对应的数据,并且保证修改的数据顺序。
前端传递的字符串id,是用逗号拼接的,比如:1,2,3,4。
修改id对应的数据时,需要按照字符串id中的顺序进行修改,也就是说,id为1的数据应该先修改,id为2的数据再修改,依此类推。
这里的顺序是i。
好久没编码了!最近开始编码遇到一个问题 !一个批量修改的问题,就是mybatis foreach 的使用。
当时使用的场景 ,前端 传逗号拼接的字符串id, 修改id对应数据的数据顺序 ,顺序 就是id 的顺序.
就是一个条件(单个id值) 修改一个值(传入的id的顺序) ,
1、 把条件作为Map 的key 修改值是value,用map入参
2、用List<Object> 或者数组 ,把条件和值封装成对象放进list集合或者array数组
3、代码使用for循环调用mapper方法 穿两个参数。
因为考虑到第二种用法,需要不断创建对象 放进数组在 遍历数组获取对象取值。从虚拟机的堆内存考虑,放弃------------------------
第三种方法,会循环多少次就执行多少条sql语句,放弃-----------------------
于是使用Map,
可是在mybatis中参数是map的foreach使用,对于很久没编码的我,实在是忘记得很干净。
本文共计5319个文字,预计阅读时间需要22分钟。
长时间没编码了!最近开始编码,遇到一个难题!就是一个批量修改的问题,涉及到MyBatis的``的使用。
当时使用场景是,前端通过传递一个带有多个字符串id的字符串,传递给后端,后端需要根据这些id修改对应的数据,并且保证修改的数据顺序。
前端传递的字符串id,是用逗号拼接的,比如:1,2,3,4。
修改id对应的数据时,需要按照字符串id中的顺序进行修改,也就是说,id为1的数据应该先修改,id为2的数据再修改,依此类推。
这里的顺序是i。
好久没编码了!最近开始编码遇到一个问题 !一个批量修改的问题,就是mybatis foreach 的使用。
当时使用的场景 ,前端 传逗号拼接的字符串id, 修改id对应数据的数据顺序 ,顺序 就是id 的顺序.
就是一个条件(单个id值) 修改一个值(传入的id的顺序) ,
1、 把条件作为Map 的key 修改值是value,用map入参
2、用List<Object> 或者数组 ,把条件和值封装成对象放进list集合或者array数组
3、代码使用for循环调用mapper方法 穿两个参数。
因为考虑到第二种用法,需要不断创建对象 放进数组在 遍历数组获取对象取值。从虚拟机的堆内存考虑,放弃------------------------
第三种方法,会循环多少次就执行多少条sql语句,放弃-----------------------
于是使用Map,
可是在mybatis中参数是map的foreach使用,对于很久没编码的我,实在是忘记得很干净。

