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!.
* 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!!.
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
Publicar un comentario