Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JDBC结果集解析为CSV内存字符串_Java_Csv_Jdbc - Fatal编程技术网

Java 将JDBC结果集解析为CSV内存字符串

Java 将JDBC结果集解析为CSV内存字符串,java,csv,jdbc,Java,Csv,Jdbc,我正在执行一个返回ResultSet对象的查询。我想将此结果集转换为内存中的CSV字符串 我想这样做的原因是,一旦我有了CSV字符串,我想调用RESTAPI端点并向它传递这个CSV数据 是否有任何现有库或实用程序可用于将结果集转换为内存中的字符串?也就是说,不进入文件。StringWriter输出=新的StringWriter(); StringWriter output = new StringWriter(); CsvWriterSettings settings = new

我正在执行一个返回ResultSet对象的查询。我想将此结果集转换为内存中的CSV字符串

我想这样做的原因是,一旦我有了CSV字符串,我想调用RESTAPI端点并向它传递这个CSV数据

是否有任何现有库或实用程序可用于将结果集转换为内存中的字符串?也就是说,不进入文件。

StringWriter输出=新的StringWriter();
    StringWriter output = new StringWriter();
    CsvWriterSettings settings = new CsvWriterSettings(); // many options here, check the documentation

    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();

    String[] headers = new String[columns];
    for(int i = 1; i <= columns; i++){
        headers[i - 1] = md.getColumnLabel(i);
    }

    //if an input value is null, you may want print "NULL"
    settings.setNullValue("NULL");

    // if an input value is not null, but is empty (e.g. ""), the writer can be configured to print "NULL" as well
    settings.setEmptyValue("NULL");

    // Sets the file headers (used for finer selection of fields, these values won't be written automatically)
    settings.setHeaders(headers);

    // Creates a writer with the above settings;
    CsvWriter writer = new CsvWriter(output, settings);

    // Writes the headers specified in the settings
    writer.writeHeaders();

    Object[] row = new Object[columns];
    while(rs.next()){
        for(int i = 1; i <= columns; i++){
            row[i - 1] = rs.getObject(i);
        }
        writer.writeRow(row);
    }

    writer.close();

    String yourString = output.toString();
CsvWriterSettings settings=新的CsvWriterSettings();//这里有很多选项,请查看文档 ResultSetMetaData md=rs.getMetaData(); int columns=md.getColumnCount(); String[]headers=新字符串[列]; 对于(int i=1;i
StringWriter输出=new StringWriter();
CsvWriterSettings settings=new CsvWriterSettings();//这里有许多选项,请查看文档
ResultSetMetaData md=rs.getMetaData();
int columns=md.getColumnCount();
String[]headers=新字符串[列];
对于(int i=1;i)现在,这读起来像是“请为我编写此代码”。这不是它的目的。请看一下,四处看看,通读,特别是主题外的内容,但可以帮助您做到这一点。现在,这读起来像是“请为我编写此代码”这不是这么回事。请拿着,四处看看,通读,特别是离题的,但可以帮助你做到这一点。