Я пытаюсь выполнить массовую операцию вставки / обновления в первый раз. Я использую Mybatis Annotaions (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"}]
Mapper будет иметь:
@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";
Кроме того, сколько массовых вставок записей выше может подойти? (записи могут варьироваться от 5000 до 50000)
PS : - Я также впервые публикую здесь вопрос. Пожалуйста go спокойно, если мне не удалось правильно задать вопрос! Большое спасибо!! :)