Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Base de Datos / Store Procedure: Result Set

Store Procedure: Result Set

Autor jc mouse domingo, mayo 19, 2019

Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los Result Set o  Conjunto de Resultados que no son otra cosa que las filas obtenidas por una consulta SQL.

MariaDB

Por ejemplo si partimos de la siguiente tabla «empleado»

empleados

Podemos definir un procedimiento para que dado el parámetro de entrada «código de cargo» nos retorne una tabla con los datos de los empleados que cumplen dicho requisito.

El asistente gráfico de phpMyAdmin nos permite crear procedimientos almacenados muy fácilmente, sin embargo también podemos crearlos directamente desde SQL, por ejemplo:

create procedure

Y para ejecutar el SQL, presionamos el botón [Continuar]

Realizamos una prueba con el parámetro de entrada «codigo» = «CMO» y obtenemos:

Elena Nito

Result Set en Java

Ahora para obtener el Result Set desde código java, realizamos lo siguiente:

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Main {

    public static void main(String[] args) {
        Connection connection = conectar("jdbc:mariadb://localhost:3306/TutorialJava", "root", "");
        if (connection != null) {

            try {
                System.out.println("> Se prepara llamada a procedimiento almacenado");
                CallableStatement stmt = connection.prepareCall("{call empleadosPorCargo(?)}");
                //ingresando parametro INOUT de tipo VARCHAR
                stmt.registerOutParameter(1, Types.VARCHAR);
                stmt.setString(1, "CMO");

                System.out.println("> Ejecutando procedimiento");
                stmt.execute();
                System.out.println("> Ejecucion terminada");

                // Obtiene el Result Set
                ResultSet resultSet = stmt.getResultSet();
                //Imprime en pantalla el resultado
                System.out.printf("%-4s | %-30s | %-30s |\n", "ID", "NOMBRE", "CARGO");
                while (resultSet.next()) {
                    int id = resultSet.getInt("id");
                    String nombre = resultSet.getString("nombre");
                    String cargo = resultSet.getString("cargo");                    
                    System.out.printf("%-4s | %-30s | %-30s |\n", id, nombre, cargo);
                }
            } catch (SQLException ex) {
                System.err.println(ex.getMessage());
            }
        }
    }

    public static Connection conectar(String url, String user, String pass) {
        try {
            Connection connection = DriverManager.getConnection(url, user, pass);
            System.out.println("> Conectado a la base de datos");
            return connection;
        } catch (SQLException ex) {
            System.err.println(ex.getMessage());
        }
        return null;
    }
}

Y como resultado obtenemos:

Result Set

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Conversor decimal a binario

Conversor decimal a binario

Desde que Google anuncio de que dejara de dar soporte al plugin de Eclipse y se concentrara en Android Studio, quienes t...

Personalizar JTable: Tabla con footer

Personalizar JTable: Tabla con footer

En muchas ocasiones es necesaria la personalización de componentes java para que estos se adecuen a nuestros requerimien...

Problema Resuelto: Personalizar JTable

Problema Resuelto: Personalizar JTable

PROBLEMA: Se tiene un JTable con 19 columnas y 50 registros, se desea personalizar el JTable de la siguiente manera:...

Autenticación de usuarios bajo el patrón MVC

Autenticación de usuarios bajo el patrón MVC

MVC es un patrón de arquitectura de software que separa una aplicación en tres componentes lógicos principales.  Estos s...

Conoce VAR lo nuevo de Java 10

Conoce VAR lo nuevo de Java 10

Java ha ido evolucionando a pasos agigantados en los últimos años gracias al pedido de su comunidad global de programado...

TextView Autocompletado

TextView Autocompletado

Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc...

Comparte lo que sabes

Categorias

Últimas entradas

Quasar es un proyecto Open Source basado en el Framework Vue que nos permite desarrollar proyectos de todo tipo, por eje...

Continuando el post de «Introducción a Retrofit» donde realizamos una breve preparación a lo que es el uso de la librerí...

Editar un documento PDF no es tan sencillo como editar un archivo de texto por ejemplo, para editar archivos PDFs necesi...

¿Alguna vez tuviste la necesidad de hacer una captura de pantalla de una página web? Si es así, seguramente buscaste y d...

Herramientas

Generador de Enlaces a Whatsapp