записи для нескольких выходных таблиц БД в одном входном файле - PullRequest
0 голосов
/ 10 января 2012

Я получаю файл с данными для нескольких выходных таблиц с разным количеством столбцов.

Первый столбец будет определять таблицу, куда должна идти запись.

head1|abc|123|sklj|sad
head2|klj|lkj|323|323
tab1|one|two|three|four|five
tab2|one|two|three
tab2|one|two|three
tab3|one|two|three|four

Как показановыше заголовок указывает заголовок.Поэтому первые две строки являются записями заголовков.

tab1 определяет таблицу 1., которая имеет пять столбцов.Таким образом, все записи, начинающиеся с tab1, должны быть загружены в table1.

tab2 определяет таблицу 2., которая имеет три столбца.Таким образом, все записи, начинающиеся с tab2, должны быть загружены в table2.

tab3 определяет таблицу 3., которая имеет четыре столбца.Поэтому все записи, начинающиеся с tab3, должны быть загружены в table3.

Как реализовать этот сценарий?

Есть ли еще примеры с таким же сценарием?

Спасибо за чтение!

1 Ответ

0 голосов
/ 10 января 2012

простое решение для пакетной пружины может быть:

  • модель домена с абстрактным родительским классом "targetTab" и конкретными классами для каждой целевой таблицы, например, TargetTab1 расширяет TargetTab
  • считыватель, которыйчитает строки в виде списка / карты
  • (вариант отображения 1). Пользовательская реализация FieldSetMapper, которая решает целевую таблицу по первой записи в списке / карте и создает конкретный объект targetTab, например targetTab1
  • (параметр отображения 2) процессор делает то же, что и выше. FieldSetMapper
  • Writer принимает все объекты типа TargetTab
  • того же самого писателя, проверяет тип и решает, какой из реальных писателей (простых реализаций дао) следует использовать

в более расширяемом решении может быть представлен предварительный пакет / скрипт, который разбивает файл на 3 (или более) файла в соответствии с таблицей назначения и отдельный пакет для каждого типа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...