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

Software gratuito para la creación de prototipos GUI

En esta oportunidad te presento una herramienta de creación de prototipos de Interfaz Gráfica de Usuario o GUI de código[...]

Proyecto Base de Datos Access y Java

La base de datos elegida es Access 2007 (*.accdb), pero claro la migracion hacia otra base de datos como MySQL o Postgre[...]

Probando Google Antigravity la nueva plataforma de desarrollo con IA

Google ha lanzado oficialmente Google Antigravity, un nuevo Entorno de Desarrollo Integrado (IDE) que promete transforma[...]

Galeria de imagenes en java

En este tutorial crearemos una Galeria de Imagenes al estilo de javascript o flash con Java y el IDE Netbeans 6.9. 1. Cr[...]

Crear archivos JNLP con Netbeans

¿Que son los archivos JNLP? Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta[...]

Sistema de gestión de stock – El Controlador (Parte 5)

Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O El controlador[...]