Listar Tablas de una BD en Postgres

Listar Tablas de una BD en Postgres

Hola amigos, de nuevo por aquí, hoy en esta entrada les traigo una interfaz en la que podemos consultar/ver las tablas que tenemos en una base de datos... Antes que nada entonces creamos un JFrame:

E insertamos unos controles (ustedes lo hacen a su gusto) y una tabla en la que mostraremos las propiedades  de las tablas!.

Cambiamos las propiedades de los controles!. Como pueden ver tengo un botón Conectarse a Pg, que nos servirá para abrir la conexión a Postgres, el resultado se muestra en el cuadro de texto, es decir si se conectó correctamente o no, un jtable tablasDeBD, al que le cambiamos también los encabezados de las columnas, son 7 columnas. Las filas se irán agregando por cada tabla que exista en la base de datos, otro botón Mostrar Tablas que cargará el resultado de la consulta, un botón Salir.
Agregamos la línea: this.setLocationRelativeTo(null); en el constructor, para que nos posicione la ventana en el centro de la pantalla, esto es sólo para un poco más de estética.
Creamos un objeto del tipo DefaultTableModel llamado modelo, el cual contendrá el modelo de la tabla al que puse por nombre tablasDeBD.
A seguir, los códigos correspondientes:
********************************************************************************

* Constructor.



    DefaultTableModel modelo; // objeto para obtener el modelo de la tabla
    
    public ListarBDs()
    {
        initComponents();
        modelo = (DefaultTableModel) tablasDeBD.getModel();
        this.setLocationRelativeTo(null); //
    }
***********************************************************************************************************

1. Método para  obtener la Conexión.

public Connection obtConexion() {
        try {
            String driverName = "org.postgresql.Driver";
            String url = "jdbc:postgresql://localhost:5432/rodney";
            String usuario = "postgres";
            String passwd = "211289";
            Class.forName(driverName);
            Connection conn = DriverManager.getConnection(url, usuario, passwd);
            if (conn != null)
                JOptionPane.showMessageDialog(null, "Conexión establecida con éxito!!", "suceso", JOptionPane.INFORMATION_MESSAGE);
            return conn;    
            
        } catch (ClassNotFoundException exc) {
            JOptionPane.showMessageDialog(null, "No se encontró el Driver de la BD", "Error", JOptionPane.ERROR_MESSAGE);
            return null;


        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "No pudo establecerse la Conexión.", "Error", JOptionPane.ERROR_MESSAGE);
            return null;
        }
 }

*********************************************************************************
2. Evento del Botón "Conectarse a Pg":

private void btnConectarse_Click(java.awt.event.ActionEvent evt) 
{
        Connection conn = obtConexion();
        if (conn != null)
        {
            txt_Estado.setText("¡Conectado correctamente!");
        }
        else
            txt_Estado.setText("No se logró establecer la conexión!");
  }
***********************************************************************************************************
3. Método para Cargar el resultado de la Consulta a la Tabla

private void cargarTabla ()
 {
     try
     {
         Connection conexion = obtConexion();
         PreparedStatement pstm = conexion.prepareCall("select * from pg_tables  where schemaname = 'public'");
         ResultSet rset = pstm.executeQuery();
         while (rset.next())
         {
             modelo.addRow(new Object[]
                    {
                        rset.getString(1),
                        rset.getString(2),
                        rset.getString(3),
                        rset.getString(4),
                        rset.getString(5),
                        rset.getString(6),
                        rset.getString(7),
                    });
         }
     }
     catch (SQLException exc)
     {
             JOptionPane.showMessageDialog (null, "Error:"+exc.getMessage(), "error", JOptionPane.ERROR_MESSAGE);
     }   
 }
- Como ven, la sentencia que nos da la lista de tablas con sus propiedades es: "select * from pg_tables". Pero para que nos devuelva solo las tablas que usamos, es decir para que  no incluya las tablas propias del motor de postgres incluimos la condición " where schemaname='public' " .... public es el nombre del esquema que yo utilizo y el que postgres  establece por default, si tienen distinto lo cambian nomás!


***********************************************************************************************************
4. Evento del botón "Mostrar Tablas".

private void btnMostrarTablas(java.awt.event.ActionEvent evt) {
        cargarTabla();
    }
***********************************************************************************************************
5. Evento del botón Salir


    private void btnSalir(java.awt.event.ActionEvent evt) {
        System.exit(0);
    }
**********************************************************************************************************


El Resultado de todo esto:
1. Ejecutamos:


2. Click en "Conectarse a Pg:


3. Click en "Mostrar Tablas"


y por último en "salir" para terminar la ejecución!!.

Comentarios

Entradas populares de este blog

Ejercicios para aprender AutoCAD 3D

Piezas 3D - interesantes

Cómo instalar una fuente de alimentación