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:
Entre las ventajas de usar funciones en nuestros proyectos tenemos:
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:
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.
Para terminar probemos el correcto funcionamiento de nuestra función.
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();
}
}
}
}
enjoy!
En esta oportunidad dejamos las fuentes del Generador de Código de Control de Impuestos Bolivia (Facturación Virtual), e[...]
En este post se da respuesta a una pregunta realizada por facebook. El problema dice así: Se quiere personalizar un JTab[...]
Java nos permite pasar parámetros a una aplicación empaquetada en un *.JAR mediante el MAIN de nuestro programa, pero cl[...]
El problema dice asi: Se desea contar los segundos que se presiona un JButton en un formulario. Solución: Para resolver[...]
El proyecto «Java Decompiler» tiene como objetivo desarrollar herramientas para descompilar y analizar byte code de jav[...]
Problema: Escriba un programa en java que permita dibujar con el mouse cuadrados, círculos y triángulos. El usuario debe[...]