#java #jsp #web-applications #servlets
#java #jsp #веб-приложения #сервлеты
Вопрос:
Каков наилучший способ сохранить данные, извлеченные из базы данных, в Java для обработки?
Вот некоторый контекст:
Каждый месяц данные из файлов Excel сохраняются в базе данных, и наше веб-приложение (обычный JSP / Servlet) выполняет некоторую обработку этих данных в базе данных. В настоящее время мы используем ArrayList хэш-карт для хранения данных, извлеченных из таблиц, но это кажется очень неуклюжим. Есть ли лучший способ или структура данных для этого?
На самом деле невозможно создать какой-то класс модели для каждого из них, потому что нет логического объекта «User» или чего-либо подобного. По сути, это фрагменты случайных данных, которые необходимо обработать. Хранимая процедура также не является решением, поскольку логика обработки довольно сложна.
Ответ №1:
Попробуйте использовать Java API для ускорения выполнения.
- Apache POI
- Java Excel API, а именно JXL
Проверьте ссылку на образец руководства, используя JXL: Ссылка
Если ваши файлы Excel находятся в формате csv, тогда используйте OpenCSV.
Комментарии:
1. Извините, но файлы ДОЛЖНЫ быть отправлены в базу данных. Мы уже используем JXL для работы с файлами Excel и вставки их в базу данных.
Ответ №2:
На самом деле невозможно создать какой-то класс модели для каждого из них, потому что нет логического объекта «User» или чего-либо подобного. По сути, это фрагменты случайных данных, которые необходимо обработать. Хранимая процедура также не является решением, поскольку логика обработки довольно сложна.
Тогда на самом деле нет лучшего способа, чем использование List<Map<String, Object>>
. Чтобы смягчить боль, вы могли бы абстрагироваться от Map<String, Object>
, распространив его на другой класс, например, Row
с помощью, в конечном счете, удобных методов для приведения значений ( .getAsDouble(columnname)
или даже T get(columnname, Class<T> type)
и т.д.), Чтобы это делало перемещение и манипулирование менее пугающими.