首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用CSV文件而不是SQL语句创建一个Java ResultSet。

使用CSV文件而不是SQL语句创建一个Java ResultSet。
EN

Stack Overflow用户
提问于 2018-08-10 00:37:16
回答 1查看 2.1K关注 0票数 1

我想使用一个结果集来保存我的用户数据。只有一个问题-数据是CSV (逗号分隔)格式,而不是在数据库中。

CSV文件在顶部包含一个标题行,然后是数据行。我想动态创建一个结果集,但不使用SQL查询。输入将是CSV文件。

我期望(根据我的Java经验)会有rs.newRowrs.newColumnrs.updateRow等方法,这样我就可以使用结果集的结构,而不需要先进行任何数据库查询。

在结果集上有这样的方法吗?我看了文档,没有找到任何方法。如果只是从CSV构建一个结果集,然后像使用SQL查询一样使用它,这将非常有用。我发现很难使用java bean、bean的数组列表等等,因为我想读入具有不同结构的CSV文件,相当于SQL中的SELECT * FROM

我不知道列的名称或编号会是什么。所以像“手动向Java添加数据”这样的So问题不能满足我的需求。在这种情况下,他已经有了一个SQL创建的结果集,并且想要添加行。

在我的例子中,我想从头开始创建一个结果集,并在读入第一行时添加列。现在我正在考虑这个问题,我可以使用SELECT COL1, COL2, COL3 ... FROM DUMMY这样的语句从第一行开始创建一个查询。然后使用INSERT ROW语句读取并插入其余部分。(后来:)但在尝试时,它失败了,因为没有关联的实际表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-10 00:43:09

CsvJdbc开源项目应该做到这一点:

// Load the driver.
Class.forName("org.relique.jdbc.csv.CsvDriver");

// Create a connection using the directory containing the file(s)
Connection conn = DriverManager.getConnection("jdbc:relique:csv:/path/to/files");

// Create a Statement object to execute the query with.
Statement stmt = conn.createStatement();

// Query the table. The name of the table is the name of the file without ".csv"
ResultSet results = stmt.executeQuery("SELECT col1, col2 FROM myfile");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51772088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档