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

SQLite INSERT, UPDATE, DELETE, QUERY

En este segundo post sobre Android y SQLite, veremos el uso de los métodos de gestión de base de datos más utilizados, e[...]

Tapiti: A sumar y a saltar (Software Educativo)

Tapiti v1.2.0 es un Software Educativo Gratuito multiplataforma para los sistemas operativos Windows y Linux el cual no[...]

Crear un plugin wordpress «Banned Word»

En este post, escribiremos un sencillo plugin para wordpress el cual consistirá en reemplazar palabras en los comentario[...]

GSON: Convertir array JSON en List de objetos Java

En este ejemplo tenemos un array en JSON el cual representa una lista de alumnos y queremos llevar este a una lista en j[...]

SwingWorker con base de datos

Cuando se realizan aplicaciones en java con base de datos y se llega a un punto donde es necesario realizar una consulta[...]

Conexion c# y MySQL con ADO.NET

Uno de los mayores problemas que se presenta en el desarrollo de una aplicación, es el acceso a la base de datos y el mé[...]