Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Obtener Metadatos de un ResultSet

Obtener Metadatos de un ResultSet

Por jc mouse lunes, julio 8, 2019

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:

  • getColumnName(): Obtiene el nombre de la columna designada.
  • getColumnTypeName(): Recupera el nombre de tipo específico de la base de datos de la columna designada.
  • getColumnDisplaySize(): El tamaño de la columna.
  • isNullable(): Indica la nulabilidad de los valores en la columna designada. El estado de nulabilidad de la columna esta dada como columnNoNulls, columnNullable o columnNullableUnknown.
  • isAutoIncrement(): Indica si la columna designada se numera automáticamente donde TRUE es por el si, y FALSE por el no.
  • getColumnLabel(): Obtiene el título sugerido de la columna designada para su uso en impresiones y pantallas. El título sugerido suele ser especificado por la cláusula AS de SQL. Si no se especifica un AS de SQL, el valor devuelto por getColumnLabel será el mismo que el valor devuelto por el método getColumnName.

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

}

ResulSet MetaData

enjoy!

Tags

Artículos similares

Interfaces Funcionales

Una Interface Funcional es una interface que contiene uno y solo un método abstracto aunque puede contener métodos por d[...]

Números narcisistas o de Armstrong

Los números narcisistas o números de Armstrong son aquellos números enteros positivos  cuya suma de las n-ésim[...]

Como saber el tipo de objeto que contiene un hashmap

La clase hashMap es muy util para almacenar objetos de la forma ( Clave, Objeto ), donde Clave es un identificador único[...]

¿Quieres llorar? conoce que es y como protegerse de WannaCry

Este 12 de Mayo de 2017 se produjo un ataque masivo mundial del ransomware WannaCry  el  que afecto a más de 200000 comp[...]

Crea un blog sin base de datos con Grav

Existen muchas plataformas CMS de código abierto excelentes, como Joomla y WordPress, así como algunas plataformas emerg[...]

Tojorí – Java/MySQL

Tojorí es una libreria Java/Mysql para la creación de aplicaciones de base de datos utilizando el IDE de Netbeans desde[...]