Como crear procedimientos almacenados con parametros y llamarlos desde java?
Teniendo en cuenta la siguiente tabla "Productos" que tenemos creada como en nuestra base de datos PRUEBAS vamos a crear un procedimiento parametrizado para actualizar los campos de un registro.
En esta ocasión vamos a modificar el registro seleccionado.
escribimos la siguiente sentencia CREATE PROCEDURE.
Después de esto escribimos el nombre de nuestro proceso.
seguido del nombre ponemos dos paréntesis ( ).
dentro de los paréntesis escribimos todos variables que almacenarán todos los campos datos que vamos a actualizar en el registro, seguido del tipo de dato y entre paréntesis escribimos la longitud de caracteres que tendrá.
hacemos un salto de línea y escribimos nuestra sentencia SQL como se muestra en la imagen.
como utilizar procesos parametrizados desde un programa en java
- Conectamos nuestra base de datos en mysql. (como conentar una db mysql en java)
- Creamos un objeto de la clase CallableStatement c de java para llamar al proceso.
- dentro de nuestro objeto c estara almacenado el metodo prepareCall de la interfaz connection y le pasamos por parametro siguiente fragmento.
- Dentro el metodo preparecall escribimos la siguiente instruccion ente comillas { CALL ACTUALIZA_DATOS}
- seguido del nombre de nustro proceso colocamos los interrogantes para cada parametro. ACTUALIZA_DATOS ?,?,?,?,?,?,? .
- utilizando los metodos set de la clase preparecall y le asignamos un valor para cada incognita.
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.time.LocalDate;
public class ProcesosParametrizados {
private static final String nombrearticulo=" play station 5";
private static final String seccion="Tecnologia";
private static final String paisdeorigen="china";
private static final String importado="verdadero";
private static final double precio=3000;
private static final int codigo =1;
private static LocalDate fecha= LocalDate.now();
public ProcesosParametrizados() {
}
public static void main(String[] args) {
try {
Connection basededatos= DriverManager.getConnection("jdbc:mysql://localhost:3306/pruebas","root","");
CallableStatement mustraclientes=basededatos.prepareCall("{call ACTUALIZA_DATOS (?,?,?,?,?,?,?)}");
mustraclientes.setInt(1,codigo);
mustraclientes.setString(2,seccion );
mustraclientes.setString(3, nombrearticulo);
mustraclientes.setDouble(4,precio );
mustraclientes.setDate(5, Date.valueOf(fecha));
mustraclientes.setString(6,paisdeorigen );
mustraclientes.setString(7,importado );
}
} catch (SQLException e) {
System.out.println("no se ha podido conectar");
e.printStackTrace();
}
}
}
Comentarios
Publicar un comentario