Как два сравнивают данные между двумя таблицами базы данных, чтобы сообщить о точном совпадении и несовпадающих записях в java

Я хочу сравнить данные между двумя таблицами базы данных для сопоставленных столбцов a2a и сообщить отдельные сопоставленные и несовпадающие записи в Excel. У веб-приложения есть экран для выбора конкретной таблицы и отображения столбцов. На основе пользовательского ввода я формирую динамический запрос и читаю данные из базы данных и сохраняю их в объекте List<List<String>> как для исходной, так и для целевой таблицы. Моя логика поиска совпадений и несоответствий следующая:

List<List<String>> sourceData= resultObj.getSourceData();List<List<String>> targetData=resultObj.getTargetData();

List<List<String>> matchRecords=new ArrayList<List<String>>(sourceData);matchRecords.retainAll(targetData);

List<List<String>> misMatchRecords=new ArrayList<List<String>>(sourceData);misMatchRecords.removeAll(targetData);

Я хочу улучшить свою логику, чтобы получить точное совпадение и запись о несоответствии, потому что из-за вышеуказанного подхода сообщается о неправильном несоответствии в случае повторяющихся записей ...

Лучше делать это в базе данных, а не на уровне приложения.

Veselin Davidov 05.11.2018 09:33

Я занимаюсь этим на уровне приложения, так как я хотел создать отчет Excel для исходных записей, целевых записей, записей о совпадениях и записей о несоответствиях. И для каждой операции проверки будет более 5 миллионов записей как в источнике, так и в цели, поэтому это повлияет на базу данных, если я нажму на базу данных 4 раза, чтобы сгенерировать отчеты.

user10602599 05.11.2018 13:54
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
83
0

Другие вопросы по теме