我想使用一个结果集来保存我的用户数据。只有一个问题-数据是CSV (逗号分隔)格式,而不是在数据库中。
CSV文件在顶部包含一个标题行,然后是数据行。我想动态创建一个结果集,但不使用SQL查询。输入将是CSV文件。
我期望(根据我的Java经验)会有rs.newRow
、rs.newColumn
、rs.updateRow
等方法,这样我就可以使用结果集的结构,而不需要先进行任何数据库查询。
在结果集上有这样的方法吗?我看了文档,没有找到任何方法。如果只是从CSV构建一个结果集,然后像使用SQL查询一样使用它,这将非常有用。我发现很难使用java bean、bean的数组列表等等,因为我想读入具有不同结构的CSV文件,相当于SQL中的SELECT * FROM
。
我不知道列的名称或编号会是什么。所以像“手动向Java添加数据”这样的So问题不能满足我的需求。在这种情况下,他已经有了一个SQL创建的结果集,并且想要添加行。
在我的例子中,我想从头开始创建一个结果集,并在读入第一行时添加列。现在我正在考虑这个问题,我可以使用SELECT COL1, COL2, COL3 ... FROM
DUMMY这样的语句从第一行开始创建一个查询。然后使用INSERT ROW语句读取并插入其余部分。(后来:)但在尝试时,它失败了,因为没有关联的实际表。
发布于 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");
https://stackoverflow.com/questions/51772088
复制相似问题