Como crear procesos almacenados sin parametro en myqsl y llamarlos desde una aplicacion java?

Los procesos almacenados en bases de datos relacionales se utilizan para encapsular sentencias de SQL  que se utilizan con mayor frecuencia por un equipo de trabajo, algunas veces se utiliza para guardar consultas dificiles de aprender por parte de los desarrolladores y en caso de que se les olvide ya tienen esta consulta guardada en el servidor.

para crear un procedimiento almacenado en MYSLQ  utilizamos la siguiente sentecncia:

  1. escribimos la siguiente sentencia CREATE PROCEDURE  
  2. sigiente de esto escribimos el nombre de nuestro proceso.
  3. seguido del nombre ponemos dos parentesis ( ).
  4. hacemos un salto de linea y escribimos nuestra consulta, registro o modificacion sql en  nuestra base de datos.    
ejemplo:
    

si nos vamos a nuestro gestor de mysql y en la seccion de bases de datos buscamos la opcion que dice procedimientos podremos ver que se ha guardado nuestro proceso.
para ejecutar esta consulta desde java necesitamos realizar los siguientes pasos:
  1. Conectamos nuestra base de datos en mysql. (como conentar una db mysql en java)
  2. Creamos un objeto de la clase CallableStatement c de java para llamar al proceso.

  3. Nuestro objeto c seria igual a lo que devolvera  el metodo prepareCall de la interfaz connection  utilizando nuestro objeto que conecta a la base de datos.

  4. Dentro el metodo preparecall escribimos la siguiente instruccion ente comillas { CALL  seguido el nombre de nuestro proceso}
  5. Creamos un Resulset que almacenara el resultdo de nuestro proceso y lo reccorremos.
ejemplo:

public class Consultaprepardas {

public Consultaprepardas() {

    }

public static void main(String[] args) {

try {

Connection basededatos= DriverManager.getConnection("jdbc:mysql://localhost:3306/pruebas","root","");

CallableStatement mustraclientes=basededatos.prepareCall("{call miproceso}");

ResultSet r= mustraclientes.executeQuery();

while(r.next()) {

System.out.println(r.getString(2)+" "+r.getString(1));

    }

} catch (SQLException e) {

System.out.println("no se ha podido conectar");

        }

    }

}

Comentarios

Entradas populares