Código Java – Función para Convertir un ResultSet a Array

Este es el Ejemplo #15 del Topic: Programación Gráfica en Java.

Antes había explicado como retornar una consulta a base de datos mediante un CacheRowSet, Ahora explicaré otra de las formas que existe para retornar los datos pasándolos desde un ResultSet hacia un array.

La siguiente función actuará dentro del método que se encargará de establecer la conexión y retornar los datos en forma de un arreglo.

...
    private Object[][] ResultSetToArray(ResultSet rs)
    {
        Object obj[][]=null;

        try
        {

        rs.last();

        ResultSetMetaData rsmd = rs.getMetaData();

        int numCols = rsmd.getColumnCount();

        int numFils =rs.getRow();

        obj=new Object[numFils][numCols];
        int j = 0;

        rs.beforeFirst();

        while (rs.next())
        {
            for (int i=0;i<numCols;i++)
            {

                obj[j][i]=rs.getObject(i+1);
            }
            j++;

        }

        }
        catch(Exception e)
        {

        }

        return obj;
    }
...

Código de Ejemplo:

package beastieux.gui;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author beastieux
 */
public class Ejm15_ResultSetToArray extends JFrame {

    public Ejm15_ResultSetToArray()
    {
        JTable tblEjemplo = new JTable();
        JScrollPane scpEjemplo= new JScrollPane();

        //Llenamos el modelo
        DefaultTableModel dtmEjemplo = new DefaultTableModel(getFilas(),
                                                             getColumnas());

        tblEjemplo.setModel(dtmEjemplo);
        scpEjemplo.add(tblEjemplo);
        this.add(scpEjemplo);
        this.setSize(500, 200);

        scpEjemplo.setViewportView(tblEjemplo);

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    }

    //Datos de las filas
    private Object[][] getFilas()
    {
         Object fila[][]=FuncionPostgreSQL("SELECT * FROM tabla");
         return fila;
    }

    //Encabezados de la tabla
    private String[] getColumnas()
    {
          String columna[]=new String[]{"Columna1","Columna2","Columna3"};
          return columna;
    }

    private Object[][] ResultSetToArray(ResultSet rs)
    {
        Object obj[][]=null;

        try
        {

        rs.last();

        ResultSetMetaData rsmd = rs.getMetaData();

        int numCols = rsmd.getColumnCount();

        int numFils =rs.getRow();

        obj=new Object[numFils][numCols];
        int j = 0;

        rs.beforeFirst();

        while (rs.next())
        {
            for (int i=0;i<numCols;i++)
            {

                obj[j][i]=rs.getObject(i+1);
            }
            j++;

        }

        }
        catch(Exception e)
        {

        }

        return obj;
    }

    private Object[][] FuncionPostgreSQL(String sql)
    {

            try
            {
                    Class.forName("org.postgresql.Driver");
                    String url = "jdbc:postgresql://127.0.0.1:5432/postgres";

                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                                      ResultSet.CONCUR_READ_ONLY);

                    ResultSet rs = s.executeQuery(sql);
                    Object[][] arr = ResultSetToArray(rs);

                    s.close();
                    rs.close();
                    con.close();

                    return arr;

            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }

            return null;
    }

    public static void main(String args[]) {
        Ejm15_ResultSetToArray obj = new Ejm15_ResultSetToArray();
        obj.setVisible(true);
    }

}

Pueder ir al artículo principal:

Códigos Sencillos hechos en Java

5 thoughts on “Código Java – Función para Convertir un ResultSet a Array

Deja un comentario