Comunidad:
Tengo una aplicación de escritorio en Java, en la cual intento borrar la infrmación de la base de datos a través de un combobox que me trae la ID y un botón de borrar.
La clase del procedimiento almacenado la tengo acá:
package procedimiento.almacenado;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SP_Elimina_Constructora extends negocio.Constructora{
private Connection Conexion;
private CallableStatement cstmt = null ;
public SP_Elimina_Constructora()
{
super();
Conexion = null;
}
public SP_Elimina_Constructora(Connection Con, String id_constructora,
String nombre_constructora,
String direccion_constructora,
int telefono_constructora,
String contacto_constructora)
{
super(id_constructora, nombre_constructora,
direccion_constructora, telefono_constructora,
contacto_constructora);
Conexion = Con;
}
public void Elimina() throws ClassNotFoundException, SQLException
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin: @localhost:1521:XE", "tallerbd", "oracle");
CallableStatement cstmt = con.prepareCall("{call SP_EliminarConstructora(?)}");
cstmt.setString(1,id_constructora);
// cstmt.setString(2,nombre_constructora);
// cstmt.setString(3,direccion_constructora);
// cstmt.setInt(4,telefono_constructora);
// cstmt.setString(5,contacto_constructora);
cstmt.execute();
con.close();
}
}
Acá dejo el Procedimiento Almacenado de Oracle
create or replace procedure "SP_ELIMINARCONSTRUCTORA"
(xid_constructora IN VARCHAR2 default '12')
is
begin
delete from constructora where id_constructora = 'xid_constructora';
end;
/
La cosa es que NO ME BORRA NADA DE LA BASE DE DATOS.
Cuá sería el problema???
Dejo acá la configuración del botón borrar
private void CMD_BorrarActionPerformed(java.awt.event.ActionEve nt evt) {
String IdConstructora = cboBorrarConstructora.toString();
String driver = "oracle.jdbc.driver.OracleDriver";
String dsn = "jdbc:oracle:thin:@localhost:1521:XE";
String sql = "{call SP_EliminarConstructora(?)}";
String usuario = "tallerbd";
String password = "oracle";
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(dsn, usuario, password);
CallableStatement cstmt = con.prepareCall(sql);
cstmt.setString(1, IdConstructora);
if (cstmt.execute()) {
JOptionPane.showMessageDialog(null, "La persona no pudo ser borrada");
} else {
JOptionPane.showMessageDialog(null, "Persona borrada correctamente");
}
cboBorrarConstructora.removeAllItems();
cstmt.close();
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, e1);
}
}