Exportar resultados de una consulta a .csv con Java


Debido a necesidad de proyecto final he tenido que empezar a programar en Java, definitivamente sigue sin ser un lenguaje de mi interés y lo sigo considerando muy lento para el tipo de proyectos que desarrollo.

Así que estaré compartiendo los pocos o muchos avances para que si tu estás en una situación similar no te compliques mucho y reutilices el código. Debo mencionar que no soy buena en Java así que si el código tiene mejoras (lo que creo es posible) te agradezco las pudieras compartir.

En este caso hice una clase llamada ManageData y la idea es que podamos hacer una consulta a la BD y tabla que nosotros indiquemos y a partir de ahí poder exportar el código. Por el momento hay muchas variables estáticas pero la idea final es que eso lo pueda indicar el usuario.

Ya que es una clase integrada a un sistema MultiAgentes tendrás que eliminar algunas secciones del código como: import cartago.*; y extends Artifact.


// CArtAgO artifact code for project architecture

package architecture;

import cartago.*;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.sql.*;

public class ManageData extends Artifact {

//Database connection
static final String host = “127.0.0.1”;
static final String port = “3306”;
static final String jdbcDriver = “com.mysql.jdbc.Driver”;
static final String database = “huellas”;
static final String dbURL = “jdbc:mysql://”+host+”:”+port+”/”+database;

//Database credentials
static final String username = “root”;
static final String password = “”;
private static final String maxPool = “250”;

// init connection object
private Connection connection;

@OPERATION
void connectWithDB() throws SQLException {
try{
   Connection connect = DriverManager.getConnection(dbURL, username, password);
   Statement stmt = connect.createStatement();
   String strSelect = “Select * FROM dogs”;
   System.out.println(“The SQL query is: ” + strSelect);
   System.out.println();
   ResultSet rSet = stmt.executeQuery(strSelect);
   convertToCsv(rSet);
  }catch (Exception exc){
   exc.printStackTrace();
  }
}

public static void convertToCsv(ResultSet rs) throws SQLException, FileNotFoundException {
   System.out.println(“Convert To CSV”);
   PrintWriter csvWriter = new PrintWriter(new File(“csv/whatever.csv”)) ;
   ResultSetMetaData meta = rs.getMetaData() ;
   int numberOfColumns = meta.getColumnCount() ;
   String dataHeaders = “\”” + meta.getColumnName(1) + “\”” ;
   for (int i = 2 ; i < numberOfColumns + 1 ; i ++ ) {
      dataHeaders += “,\”” + meta.getColumnName(i) + “\”” ;
  }
   csvWriter.println(dataHeaders) ;
   while (rs.next()) {
   String row = “\”” + rs.getString(1) + “\”” ;
   for (int i = 2 ; i < numberOfColumns + 1 ; i ++ ) {
   row += “,\”” + rs.getString(i) + “\”” ;
  }
csvWriter.println(row) ;
}
csvWriter.close();
}

}

Anuncios

Acerca de silvercorp

Blog personal de Ye§i creado el 18/Ag/06 enfocado al diseño gráfico, tecnología y programación.

Publicado el diciembre 2, 2015 en Programación. Añade a favoritos el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: