【发布时间】:2020-03-18 15:42:40
【问题描述】:
我第一次尝试执行批量插入/更新操作。我正在使用 Mybatis Anotaions (Mappers) 进行数据库相关操作。
我有一个@Param,它是List<Map<String, String>> recordList,看起来像:
[{record_no=1, first_name="Alpha", last_name="Tester", age=23, gender="female"},
{record_no=2, first_name="Beta", last_name="Tester", age=21, gender="male"}]
映射器会:
@Insert({"<script>",
"insert into demo_record (first_name, last_name, age, gender, record_no) values ",
"<foreach collection='recordList' item='record' index='index' open='(' separator = '),
( close=')' > <Here I do not know how to pass/ access Map's values.
Would it be just #{first_name} or something else?>
</foreach>",
"</script>"})
void doBatchInsert(@Param("recordList") List<Map<String, String>> recordList);
**** 我不确定open='(' separator = '), ( close=')' 究竟做了什么。如果有人可以阐明它,我会非常感谢它。 ****
我关注@Repository -> @Service 然后@Autowire RecordService.java
例如控制器类有:
@Autowired
private RecordService recordservice;
.
.
recordservice.doBatchInsert(recordList);
.
.
return "success";
另外,在 approch 之上可以批量插入多少条记录? (记录范围从 5000 到 50000)
P.S. :- 这也是我第一次在这里发帖。如果我未能正确发布问题,请放轻松!非常感谢!! :)
【问题讨论】:
-
你不能为此使用 spring-batch 吗?更合适的是:spring.io/projects/spring-batch
-
不,我不能。这将是现有项目结构的新附加组件。此外,仅对于一个单一的 perpose 使用,这将是不必要的过载。
标签: java spring mybatis ibatis spring-mybatis