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

Genera IU con la IA Stitch de Google

«Stitch de Google» es la herramienta de inteligencia artificial (IA) de Google lanzada en su conferencia Google I/O 2025[...]

Tabla con imagen de fondo en Java

En este post personalizaremos una tabla JTable Swing para pintar una imagen de fondo y darle un poco de estilo al e[...]

Microservicio REST Java con Spark – Parte 1

En este y un segundo post desarrollaremos un microservicio java utilizando el framework Spark que implementara las funci[...]

MVC Java y Base de Datos Tutorial

En post pasados [Ejemplo práctico de MVC java Swing con Netbeans, 3 en raya java con MVC y Netbeans , MVC: Modelo, Vista[...]

Crea un efecto Flip en java swing

Entre los correos y mensajes en facebook y whatsapp que me llegan (y de entrada pido perdón a quienes no puedo responder[...]

Introducción a Scene Builder y MVC (Parte II)

Segunda parte del tutorial [Introducción a Scene Builder y MVC (Parte I)]. En esta segunda parte, completaremos el diseñ[...]