使用CsvJdbc

时间:2015-07-14 15:19:31

标签: java csv jdbc csvjdbc

我需要以“YYYY-MM-DD hh:mm:ss.csv”格式绑定一组csv文件,这些文件存在于同一文件夹中,其中包含一个包含所有文件中存在的所有数据的唯一表

我需要从Java EE应用程序中读取数据,因此我想在应用程序服务器中创建一个连接池。我找到了允许将多个文件作为单个实体读取的CsvJdbc驱动程序。这个段落中的this页面是一个很好的起点:

  

要将多个文件(例如,每日日志文件)作为单个表读取,请设置数据库连接属性indexedFiles。以下示例演示了如何执行此操作。

这个例子对我来说没问题,但问题是我在文件名字符串中没有标题字。因此,相应的表格成了一个空字符串,显然无法查询该表。

如何告诉驱动程序将模式映射到没有标题部分的表?

P.S。我已经尝试使用hsqldb作为csv文件的前端,但它不支持多个文件。

1 个答案:

答案 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");