Procedimientos Almacenados (Agregar,Editar,Eliminar,Mostrar) (SQL-Java)

En este ejemplo se mostrara como agregar un nuevo registro a la base de datos asi como tambien editar un registro ya almacenado, eliminar un registro y posteriormente Mostrar los datos almacenados en la tabla.

Todo es mediante consola, para de ahi tomarlo y realizarlo en sus aplicaciones es una muestra del funcionamiento sabemos que existen muchas funciones y yo les muestro las basicas para empezar.

Clase Conexion

public class Conexion {

        public static Connection sql;
       
        public static String user="usuario";
        public static String pas="contraseña ";
       
               
        public static Connection conectar() throws Exception {
                try {
                        String databaseURL ="ruta donde se encuentra nuestra base de datos";
                        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                        sql = java.sql.DriverManager.getConnection(databaseURL, user, pas);
                        //System.out.println("Conexion Establecida..");
                } catch (Exception e) {
                        e.printStackTrace();
                        throw new Exception(e);
                }
                return sql;
        }

}

Posteriormente se muestra la clase con los metodos: con sus respectivos procedimientos almacenados

  • Eliminar
  • Agregar
  • Editar
  • Mostrar
  • package CRUDJDBC;

    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Scanner;

    public class aplication {
            private static Scanner leo=new Scanner(System.in);
            private static String longitud;
            private static String nombreCam;
            private static String descripcion;
            private static int opcion;
             public static void main(String[] args) throws SQLException {
                     
                       do{
                               System.out.println("Elija una opcion:");
                               System.out.println("1.Insertar");
                               System.out.println("2.Modificar");
                               System.out.println("3.Borar");
                               System.out.println("4.Mostrar Datos");
                               System.out.println("5.Salir");
                               opcion=leo.nextInt();
                               switch (opcion) {
                            case 1:
                                    insertarProcedimiento() ;
                                    break;
                            case 2:
                                    editarProcedimiento() ;
                                    break;
                            case 3:
                                    eliminarProcedimiento();
                                    break;
                            case 4:
                                    mostrarProcedimiento();
                                    break;

                            case 5:
                                    System.out.println("sali (-__-)");
                                    System.exit(0);
                            }
                               
                       }while(opcion!=5);
                   
            }
             

                private static void mostrarProcedimiento() throws SQLException {
                 
                       Connection conectar = null;
                       ResultSet rs;
                            try{
                                    // creamos la Conexion
                                    conectar = Conexion.conectar();
                                   
                                   
                                    conectar.setAutoCommit(false);
                                   
                                    /*instanciamos el objeto callable donde mandamos a pedir la cantidad
                                     *  parametros en este caso MostrarCampo no tiene
                                     *  y se coloca como se muestra*/

                                    CallableStatement prcProcedimientoAlmacenado = conectar.prepareCall("{call MostrarCampo()}");
                                  rs=prcProcedimientoAlmacenado.executeQuery();
                                 
                                 
                               while(rs.next()){
                                      System.out.println("ID"+"->"+rs.getInt(1));
                                      System.out.println("Longitud"+"->"+rs.getString(2));
                                      System.out.println("Nombre Campo"+"->"+rs.getString(3));
                                      System.out.println("Descripcion"+"->"+rs.getString(4));
                                     
                               }
                                     
                                    conectar.commit();
                                   
                                 
                                   
                            } catch (Exception e) {
                                   
                                    conectar.rollback();
                                   
                                    e.printStackTrace();
                            } finally {
                                    // cerrar la Conexion
                                    conectar.close();
                            }
            }

                    public static void insertarProcedimiento() throws SQLException{
                       Connection conectar = null;
            try{
                   
                    conectar = Conexion.conectar();
           
                    conectar.setAutoCommit(false);
                   
                    System.out.println("Introdusca la longitud");
                    longitud=leo.next();
                    System.out.println("Introdusca el Nombre de Campo");
                    nombreCam=leo.next();
                    System.out.println("Introdusca una descripcion");
                    descripcion=leo.next();
                    /* en este caso si mandamos a pedir tres parametros a insertar como se muestra en el ejemplo*/
                    CallableStatement prcProcedimientoAlmacenado = conectar.prepareCall("{call insertarCampo(?,?,?)}");
                    // cargar parametros
                    prcProcedimientoAlmacenado.setString(1, longitud);
                    prcProcedimientoAlmacenado.setString(2, nombreCam);
                    prcProcedimientoAlmacenado.setString(3, descripcion);
                 
                   
                    // se ejecuta el procedimiento
                    prcProcedimientoAlmacenado.execute();
                   
                    conectar.commit();
                    System.out.println("Insertado con exito");
                 
                   
            } catch (Exception e) {
           
                    conectar.rollback();
           
                    e.printStackTrace();
            } finally {
                    // cerrar la Conexion
                    conectar.close();
            }
                }
               
                public static void eliminarProcedimiento() throws SQLException{
                   
                      Connection conectar = null;
            try{
           
                    conectar = Conexion.conectar();
           
                    conectar.setAutoCommit(false);
           
                    System.out.println("Introdusca el id de la fila a eliminar");
                    int n=leo.nextInt();
                    CallableStatement prcProcedimientoAlmacenado = conectar.prepareCall("{call EliminarCampo(?)}");
                   
                      prcProcedimientoAlmacenado.setInt(1, n);
                   
                   
                    prcProcedimientoAlmacenado.execute();
                   
                    conectar.commit();
                    System.out.println("eliminado con exito");
                 
                   
            } catch (Exception e) {
           
                    conectar.rollback();
                   
                    e.printStackTrace();
            } finally {
           
                    conectar.close();
            }
                   
                }
               
                public static void editarProcedimiento() throws SQLException{
                      Connection conectar = null;
            try{
                   
                    conectar = Conexion.conectar();
           
                    conectar.setAutoCommit(false);
           
                     
                    System.out.println("Introdusca el Id a modificar");
                    int n=leo.nextInt();
                    System.out.println("Introdusca una nueva Longitud");
                    longitud=leo.next();
                    System.out.println("Introdusca un nuevo Campo");
                    nombreCam=leo.next();
                    System.out.println("Introdusca una descripcion");
                    descripcion=leo.next();
                   
                    CallableStatement prcProcedimientoAlmacenado = conectar.prepareCall("{call ActualizarCampo(?,?,?,?)}");
           
                    prcProcedimientoAlmacenado.setInt(1, n);
                    prcProcedimientoAlmacenado.setString(2, longitud);
                    prcProcedimientoAlmacenado.setString(3, nombreCam);
                    prcProcedimientoAlmacenado.setString(4, descripcion);
                   
                    prcProcedimientoAlmacenado.execute();
           
                    conectar.commit();
                 System.out.println("Actualizado con exito");
                   
            } catch (Exception e) {
                   
                    conectar.rollback();
                   
                    e.printStackTrace();
            } finally {
                    // cerrar la Conexion
                    conectar.close();
            }
                   
                   
                }
               
           

    }

    System.out.println("Saludos(--__--)");