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!
Cuando utilizamos aplicaciones web con conexión a base de datos MYSQL, se suele crear una clase que gestione la interacc[...]
Java cuenta con la clase java.lang.Math la cual contiene métodos para realizar operaciones numéricas básicas como[...]
HyperSQL DataBase (HSQLDB) es un moderno administrador de bases de datos relacionales, es portátil e implementado en jav[...]
En este post se da respuesta a una pregunta realizada por facebook. El problema dice así: Se quiere personalizar un JTab[...]
Ya sea para desarrollo de software o para cualquier otro tipo de tareas donde necesitas plasmar una idea de forma rápida[...]
Cuando se almacenan imágenes en una aplicación java y se desea después a modo de registro buscar estas y cargarlas en al[...]