我需要以“YYYY-MM-DD hh:mm:ss.csv”格式绑定一组csv文件,这些文件存在于同一文件夹中,其中包含一个包含所有文件中存在的所有数据的唯一表
我需要从Java EE应用程序中读取数据,因此我想在应用程序服务器中创建一个连接池。我找到了允许将多个文件作为单个实体读取的CsvJdbc驱动程序。这个段落中的this页面是一个很好的起点:
要将多个文件(例如,每日日志文件)作为单个表读取,请设置数据库连接属性indexedFiles。以下示例演示了如何执行此操作。
这个例子对我来说没问题,但问题是我在文件名字符串中没有标题字。因此,相应的表格成了一个空字符串,显然无法查询该表。
如何告诉驱动程序将模式映射到没有标题部分的表?
P.S。我已经尝试使用hsqldb作为csv文件的前端,但它不支持多个文件。
答案 0 :(得分:0)
设置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");