Java Как добавить новый пустой столбец в загруженный CSV - PullRequest
0 голосов
/ 26 августа 2018

Я использую код Java OpenCSV для чтения данных из одной из таблиц MYSQL и записи набора результатов в CSV.

Теперь мое требование - я хочу добавить новое пустое имя столбца в заголовок загруженного csv в качестве 1-го столбца.

Не уверен, как и где я могу внести это изменение.

Прилагается пример того, что я хочу. Дизайн

Код:

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 голосов
/ 26 августа 2018

Можете ли вы пересоздать строку запроса, когда окажетесь внутри функции dataFetch?

Чтобы добавить столбец в конце (последний столбец) Я бы заменил фразу ' 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-файл с заголовком для всех столбцов, которые он создает в настоящее время.

...