Чтение нескольких CSV-файлов с CsvJdbc

Мне нужно связать группу файла CSV в формате "ГГГГ-ММ-ДД чч: мм: сс.csv", которые присутствуют в той же папке с уникальной таблицей, которая содержит все данные, присутствующие во всех файлах.

Мне нужно прочитать данные из приложения Java EE, поэтому я хотел бы создать пул соединений на сервере приложений. Я нашел драйвер CsvJdbc, который позволяет читать несколько файлов как один объект. Хорошей отправной точкой была эта страница в разделе с этим абзацем:

Чтобы прочитать несколько файлов (например, файлы ежедневного журнала) как одну таблицу, установите свойство соединения с базой данных indexedFiles. Следующий пример демонстрирует, как это сделать.

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

Как я могу сказать драйверу сопоставить шаблон с таблицей, которая не имеет части заголовка?

PS Я уже пытался использовать hsqldb в качестве интерфейса для файлов CSV, но он не поддерживает несколько файлов.

1 ответ

Настройте CsvJdbc для чтения нескольких файлов, как описано в http://csvjdbc.sourceforge.net/doc.html а затем используйте пустое имя таблицы в запросе SQL, поскольку имена файлов CSV не имеют заголовка перед регулярным выражением fileTailPattern. Например:

    props.put("fileTailPattern", "(\\d+)-(\\d+)-(\\d+) (\\d+):(\\d+):(\\d+)"); 
    props.put("fileTailParts", "Year,Month,Day,Hour,Minutes,Seconds");

    ...

    ResultSet results = stmt.executeQuery("SELECT * FROM \"\" AS T1");
Другие вопросы по тегам