Following is Java Code to get data from DB using JDBC. However, I want column names also but it's appending data only. I am not sure how to achieve this.
import java.io.FileReader;
import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.Properties;
public class DbToCSV {
public static void main(String[] args) {
try {
FileReader reader=new FileReader("some.properties");
Properties properties=new Properties();
properties.load(reader);
String filename =properties.getProperty("filepath");
FileWriter filewrite = new FileWriter(filename);
Class.forName(properties.getProperty("jdbc.driver")).newInstance();
Connection connection = DriverManager.getConnection
(properties.getProperty("jdbc.url"),
properties.getProperty("jdbc.username"),
properties.getProperty("jdbc.password"));
String query = properties.getProperty("jdbc.query");
Statement stmt = connection.createStatement();
ResultSet resultSet = stmt.executeQuery(query);
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnCount = rsmd.getColumnCount();
while (resultSet.next()) {
for(int i=2; i<=columnCount;i++){
filewrite.append(resultSet.getString(i));
filewrite.append(',');
}
filewrite.append('\n');
}
filewrite.flush();
filewrite.close();
connection.close();
System.out.println("CSV File is Generated successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Please, anyone, explain how to get with column headers also in CSV?