Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Funciones SQL desde Java

Funciones SQL desde Java

Autor jc mouse lunes, mayo 27, 2019

En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo que son las Funciones SQL.

La principal diferencia entre un procedimiento y una función es que una función siempre debe devolver un valor, pero un procedimiento puede o no devolver un valor. También podemos agregar sobre las funciones que:

  • Los parámetros de una función son solo de entrada y no de salida.
  • Las funciones devuelven un único valor, el cual se expresa en el prototipo de su constructor.
  • Una función bajo ninguna circunstancia puede devolver una tabla de resultados. Si se devuelve más de una columna cuando se llama a la función, se produce un error 1241 1242 cuando se retorna más de una fila.
  • No podemos usar una función para insertar, actualizar o eliminar registros en las tablas de la base de datos.
  • La ultima sentencia de una función debe ser RETURN (más valor a devolver).

Entre las ventajas de usar funciones en nuestros proyectos tenemos:

  1. Una función debe escribirse una sola vez y puede reutilizarse varias veces. Esto nos ahorra tiempo y esfuerzo de programación.
  2. Las funciones mejoran el rendimiento y la eficiencia de la base de datos porque las funciones de SQL se compilan y almacenan en caché antes de su uso.
  3. La lógica de programación compleja se puede descomponer en una serie de funciones más pequeñas y sencillas, lo que hace que sea más fácil de entender y mantener.

Crear funciones desde phpMyAdmin

Con nuestra base de datos seleccionada presionamos la opción Rutina -> Agregar rutina.

Se despliega una ventana en donde podremos ingresar crear nuestra función. Es decir:

SQL

  1. Nombre de rutina: holaMundo
  2. Tipo: Seleccionar FUNCTION
  3. Parámetros: A diferencia de los procedimientos, en las funciones no podemos seleccionar el tipo de parámetro ya que todos son de entrada.
  4. Return: El tipo del valor retornado. VARCHAR para este ejemplo más una longitud de 60 caracteres
  5. Definición: El cuerpo de la función. Para este ejemplo se concatena el parámetro de entrada “nombre” en un saludo de la forma: “Hola, Juan Perez!”

Para terminar clic en [Continuar]

Al igual que con nuestras tablas y procedimientos, las funciones que creamos cuentan con su propio apartado en nuestra base de datos desde donde podemos administrarlas cómodamente.

database

Para terminar probemos el correcto funcionamiento de nuestra función.

rutina sql

Llamar a la función desde Java

El código para realizar la llamada a nuestra función “holaMundo” es el siguiente:

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
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) throws SQLException {
        Connection connection = null;
        CallableStatement statement = null;
        try {
            connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/TutorialJava", "root", "");
            System.out.println("> Conectado a la base de datos");
            //Preparamos la llamada a la rutina de la base de datos
            statement = connection.prepareCall("{?= call holaMundo(?)}");
            //Registra el tipo de dato de salida
            statement.registerOutParameter(1, Types.VARCHAR);
            //registra el tipo de entrada
            statement.setString(2, "Juan Perez");
            //llama a la funcion
            statement.execute();
            //recoge resultado
            String output = statement.getString(1);
            System.out.println(output);
        } catch (SQLException ex) {
            System.err.println(ex.getMessage());            
        } finally {
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        }
    }

}

funciones base de datos

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

Biblioteca java para leer/escribir Metadatos

Biblioteca java para leer/escribir Metadatos

En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej...

Conexión MySQL y C#

Conexión MySQL y C#

En este post vamos a crear una aplicación sencilla para conectar C# con MySQL. Manos a la obra 🙂 Necesitamos – Con...

Determinante de una matriz NxN en javascript

Determinante de una matriz NxN en javascript

Notación matemática formada por una tabla cuadrada de números, u otros elementos, entre dos líneas verticales; el valor...

Crea tu lector de códigos QR

Crea tu lector de códigos QR

En este post desarrollaremos una aplicación que nos permitirá leer un código QR y capturar la información que contiene y...

Crea un efecto Flip en java swing

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...

Proyecto Ascii Art (metodo de Black/white)

Proyecto Ascii Art (metodo de Black/white)

El Ascii Art o Arte Ascii, consiste en realizar dibujos con los caracteres ASCII (Código Americano Estándar de Intercamb...

Comparte lo que sabes

Categorias

Últimas entradas

Lorca Editor es una aplicación online creada por el desarrollador español Domingo Martin el cual tiene como objetivo el...

Eratóstenes era un matemático griego del siglo  III a.C. el cual ideó una manera rápida de obtener todos los números pri...

Las matemáticas son fundamentales para la vida y aparte de las actividades clásicas de enseñanza desarrolladas en el aul...

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

Herramientas

Generador de Enlaces a Whatsapp