Bueno masomenos para que se guíen ,trabajo en el netbeans con java , jsp y mysql los jsp obviamente son las vistas o capa de presentación si desean llamarlo así una clase controlador en la que se encuentra la logica de negocio (insertarproducto,modificar,obtener producto y obtener los detalles de la venta) y en el resto se encuentran las clases (producto,detalleventa,y venta ,BDproducto,BDdetalleventa y BDventa en estos BD's se encuentran los procedimientos almacenados) y una clase conexion también en ella va lo que su nombre dice la conexion con la BD .He aquí el problema tengo ya todo los procedimientos almacenados en java y en la BD un ejemplo del SP insertar para que sepan como estoy trabajando :
public static synchronized boolean insertarProducto(Producto varproducto) {
Connection cn = null;
CallableStatement cl = null;
boolean rpta = false;
try {
//Nombre del procedimiento almacenado y como espera tres parametros
//le ponemos 3 interrogantes
String call = "{CALL spI_producto(?,?,?)}";
//Obtenemos la conexion
cn = Conexion.getConexion();
//Decimos que vamos a crear una transaccion
cn.setAutoCommit(false);
//Preparamos la sentecia
cl = cn.prepareCall(call);
//Como el codigo se autogenera y es del tipo OUT en el procedimiento
//almacenado le decimos que es OUT y el del tipo Integer en Java
cl.registerOutParameter(1, Types.INTEGER);
//El siguiente parametro del procedimiento almacenado es el nombre
cl.setString(2, varproducto.getNombre());
//Y por ultimo el precio
cl.setDouble(3, varproducto.getPrecio());
//Ejecutamos la sentencia y si nos devuelve el valor de 1 es porque
//registro de forma correcta los datos
rpta = cl.executeUpdate() == 1 ? true : false;
if (rpta) {
//Confirmamos la transaccion
cn.commit();
} else {
//Negamos la transaccion
Conexion.deshacerCambios(cn);
}
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (SQLException e) {
e.printStackTrace();
Conexion.deshacerCambios(cn);
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (Exception e) {
e.printStackTrace();
Conexion.deshacerCambios(cn);
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
}
return rpta;
}
lo que nesecito es el SP para eliminar en java ya teniendo el obtenerproducto no se si sirva para el eliminar ,aunque sé que para eliminar primero se busca no sé si se aplica tambien en SP.
les dejo tambien el sp obtenerproducto
public static synchronized Producto obtenerProducto(int codigo) {
Producto p = new Producto();
Connection cn = null;
CallableStatement cl = null;
ResultSet rs = null;
try {
//Nombre del procedimiento almacenado
String call = "{CALL spF_producto_one(?)}";
cn = Conexion.getConexion();
cl = cn.prepareCall(call);
cl.setInt(1, codigo);
//La sentencia lo almacenamos en un resulset
rs = cl.executeQuery();
//Consultamos si hay datos para recorrerlo
//e insertarlo en nuestro array
while (rs.next()) {
//Obtenemos los valores de la consulta y creamos
//nuestro objeto producto
p.setCodigoProducto(rs.getInt("codigoProducto"));
p.setNombre(rs.getString("nombre"));
p.setPrecio(rs.getDouble("precio"));
}
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (SQLException e) {
e.printStackTrace();
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (Exception e) {
e.printStackTrace();
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
}
return p;
}
Se que es demasiado largo mi consulta bueno parece esque el codigo está comentado sino se vería pequeño de todos modos porfavor enserio nesecito su ayuda.COMO ELIMINO UN PRODUCTO