writer.writeAll (rs, true) создает пустой файл - PullRequest
0 голосов
/ 12 марта 2019

Я использую opencsv для извлечения данных из базы данных Oracle в результирующий набор, а затем в CSV.Я получаю результаты, но созданный CSV пуст?Вывод: Oracle JDBC Драйвер зарегистрирован!Вы сделали это, возьмите под контроль свою базу данных сейчас!216 18 160 18 480 18 384 18

package com.mkyong;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.io.*;
import java.io.IOException;
import java.sql.*;
import java.util.Scanner;
import com.opencsv.*;

public class OracleJDBCExample {
    public static void main(String[] argv) throws IOException {
        System.out.println("-------- Oracle JDBC Connection Testing ------");
        try {
             Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            System.out.println("Where is your Oracle JDBC Driver?");
            e.printStackTrace();
            return;
        }
        System.out.println("Oracle JDBC Driver Registered!");
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(
             "jdbc:oracle:thin:@//xyz.com:1521/xx", "USERNAME", "PWD");
        } catch (SQLException e) {
            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;
        }
        if (connection != null) {
            System.out.println("You made it, take control your database now!"); 
            //step3 create the statement object  
            Statement stmt;
            try {
                stmt = connection.createStatement();
                 //step4 execute query           
                CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
                ResultSet rs=stmt.executeQuery("select unitsperpallet,defaultuom from tab where rownum < 5");  

                while(rs.next())
                {
                    System.out.println(rs.getInt(1) + " "+rs.getInt(2)); 
                }

                //set myResultSet to the results of your query here
                writer.writeAll(rs, true); 
                writer.flush();
                writer.close();
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
        } else {
            System.out.println("Failed to make connection!");
        }
    }

}
...