The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

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);
    }

}
Anuncios

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

  1. freddy molleda junio 5, 2013 en 8:49 pm

    hermano como hago para ingresar un vector a una tabla de la base de datos

  2. Lroena marzo 15, 2013 en 11:40 am

    Excelente, muchas gracias!!

  3. Henderson mayo 29, 2012 en 8:30 am

    Buena explicación del código , sirvió de mucho !!!!!!”

  4. Anónimo mayo 26, 2012 en 3:35 pm

    gracias me funciono perfecto

  5. Diseno WEB profesional marzo 3, 2011 en 5:45 pm

    Exceletene aporte me ayudo mucho! :)

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

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: