首页 文章

使用CsvJdbc读取多个csv文件

提问于
浏览
0

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

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

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

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

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

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

1 回答

  • 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");
    

相关问题