Java如何将新的空列添加到下载的CSV

时间:2018-08-26 13:34:33

标签: java mysql opencsv

我正在使用Java OpenCSV代码从MYSQL的一张表中读取数据并将结果集写入CSV。

现在我的要求是我想在下载的csv的标题中添加新的空列名称作为第一列。

不确定如何以及在何处进行此更改。

示例,附上我想要的内容。Design

代码:

public void dataFetch(Connection conn,String query) {  // query is hardcoded as :  select Name,Address from dbo.Employee
    ResultSet rs = null;
    Statement stmt = null;          

    try {       
        stmt = conn.createStatement();      
        stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        stmt.setFetchSize(Integer.MIN_VALUE);           
        rs = stmt.executeQuery(query); 

        CSVWriter writer = new CSVWriter(new BufferedWriter(new FileWriter(strSource)));    
        ResultSetHelperService service = new ResultSetHelperService(); 
        service.setDateTimeFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
        System.out.println("**** Started writing Data to CSV **** " +  new Date());         

        writer.setResultService(service);
        int lines = writer.writeAll(rs, true, true, false);  
        writer.flush();
        writer.close();
        System.out.println("** OpenCSV -Completed writing the resultSet at " +  new Date() + " Number of lines written to the file " + lines);  

        rs.close();
        stmt.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:2)

一旦进入dataFetch函数,是否可以重新构造查询字符串?

要在END处添加一列(最后一列) 我将用新的字段定义替换短语' FROM ',以便您的查询字符串如下所示:

select Name,Address,'' AS NewColumnName from dbo.Employee

用“ FROM”代替“ ,'' AS NewColumnName FROM”是我的建议。 (我只是用大写字母来强调)

要在开始处添加一列 我将用新的字段定义替换短语'SELECT ',以便您的查询字符串如下所示:

select '' AS NewColumnName,Name,Address from dbo.Employee

用“ SELECT”代替“ SELECT '' AS NewColumnName,”是我的建议。 (我只是用大写字母来强调)

然后,您实际上已经在SQL输出中添加了新列,它将传播到CSV文件中,其中包含当前创建的所有列的标题。