En este post mostramos un ejemplo de uso de la interface ResultSetMetaData el cual se extiende Wrapper que es una interfaz para las clases JDBC.
ResultSetMetaData nos sirve para consultar información (tipos y propiedades) sobre las columnas de un objeto ResultSet. Por ejemplo:
Para el ejemplo del post, usaremos la siguiente tabla llamada «mitabla«:
CREATE TABLE mitabla ( id int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre varchar(64) NOT NULL, fnacimiento date NOT NULL, bio varchar(500) DEFAULT NULL, mail varchar(32) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
El código java es el siguiente:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { String sql = " SELECT id, " + " nombre AS NombreCompleto," + " fnacimiento AS FechaNacimiento, " + " bio AS Biografia " + " FROM mitabla "; try (Connection connection = DriverManager .getConnection("jdbc:mariadb://localhost:3306/TutorialJava", "root", "")) { System.out.println("Conectado a la base de datos"); System.out.println("--- METADATOS ---"); ResultSet resultset = connection.createStatement().executeQuery(sql); ResultSetMetaData resultSetMetaData = resultset.getMetaData(); int totalCoumnas = resultSetMetaData.getColumnCount(); System.out.println("Total columnas: " + totalCoumnas); for (int col = 1; col <= totalCoumnas; col++) { System.out.println("\n--------------------------"); System.out.println("TABLA: " + resultSetMetaData.getColumnName(col)); System.out.println(" Tipo: " + resultSetMetaData.getColumnTypeName(col) + " Tamaño: " + resultSetMetaData.getColumnDisplaySize(col)); //isNullable() donde 0: columnNoNulls 1: columnNullable 2: columnNullableUnknown System.out.println(" Es Nullable: " + resultSetMetaData.isNullable(col)); System.out.println(" Autoincrementable: " + resultSetMetaData.isAutoIncrement(col)); System.out.println(" Label: " + resultSetMetaData.getColumnLabel(col)); } connection.close(); System.out.println("\nDesconectado de la base de datos"); } catch (SQLException ex) { System.err.println(ex.getMessage()); } } }
enjoy!
En este post personalizaremos un componente JComboBox para que sus elementos acepten tablas (JTable) en lugar de texto s[...]
Los procedimientos almacenados en MySQL son similares a los procedimientos de otros lenguajes de programación en el sent[...]
Los números narcisistas o números de Armstrong son aquellos números enteros positivos cuya suma de las n-ésim[...]
Notación matemática formada por una tabla cuadrada de números, u otros elementos, entre dos líneas verticales; el valor[...]
Problema: Se extrae registros de una base de datos y se desea mostrar estos en un control JTable utilizando un DefaultTa[...]
En un tutorial anterior se creo un WebServices [Java WebServices] utilizando java y Netbeans, en esta ocasión se da cont[...]