You are on page 1of 6

BOTON GUARDAR

private void jbGuardarMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:

//leer datos del formulario

int codigo=Integer.parseInt(jtxtCodigo.getText());
String nombre=jtxtNombre.getText();
String marca=jtxtMarca.getText();
double precio=Double.parseDouble(jtxtPrecio.getText());
double preciod=precio;
int cantidad=Integer.parseInt(jtxtCantidad.getText());

//int idcategoria=jComboBoxCategoria.getSelectedIndex()+1;
Categoria cat = (Categoria)jComboBoxCategoria.getSelectedItem();
int idcategoria=cat.getId();

boolean tieneDescuento=jcbDescuento.isSelected();
double procDescuento=Double.parseDouble(jsDescuento.getValue().toString());
String estadoProd="";
String talla="";
if(jrbNuevo.isSelected()){
estadoProd=jrbNuevo.getText();
}else if(jrbSeminuevo.isSelected()){
estadoProd=jrbSeminuevo.getText();
}
else estadoProd=jrbUsado.getText();

Producto prod =new Producto();

if(prodEditar!=null){
prod=prodEditar;
}else{
prod=new Producto();
prod.setCodigo(codigo);
}

prod.setCodigo(codigo);
prod.setNombre(nombre);
prod.setMarcamodelo(marca);
prod.setPreciounitario(precio);
prod.setPreciodecena(preciod);
prod.setCantidad(cantidad);
prod.setEstadoproducto(estadoProd);
prod.setTienedescuento(tieneDescuento);
prod.setPorcentajedescuento(procDescuento);
prod.setIdcategoria(idcategoria);
prod.setTalla(talla);

ProductoDAO pdao= new ProductoDAO();


int res=0;
if(prodEditar!=null){//editar
res=pdao.editar(prod);
}else{//guardar uno nuevo
res=pdao.guardar(prod);
}

String mensaje;
if(res>0){
mensaje="Guardado Exitosamente";

}else{
mensaje="No se guardo el producto";

}JOptionPane.showMessageDialog(null, mensaje);

//actualizar la tabla de productos


panelListaProducto.cargarTabla("");

this.dispose();//cerrar ventana

CARGAR DATOS

void cargarTabla(String criterio){


ProductoDAO pdao = new ProductoDAO();
lista=pdao.consultar(criterio);
System.out.println(lista.size());
//mostrar la lista de productos en el jTable
DefaultTableModel modelo= new DefaultTableModel();
String[] columnas = {"Id","Còdigo","Nombre","Precio Unitario","Categoria"};
modelo.setColumnIdentifiers(columnas);
Object[] producto = new Object[5];
for(int i=0;i<lista.size();i++){
producto[0]=lista.get(i).getId();
producto[1]=lista.get(i).getCodigo();
producto[2]=lista.get(i).getNombre();
producto[3]=lista.get(i).getPreciounitario();
producto[4]=lista.get(i).getCategoria().getNombre();

modelo.addRow(producto);

}
//Establecer el modelo de datos de la tabla
jTable1.setModel(modelo);

CLASE PRODUCTO DAO


METODO GUARDAR
public int guardar(Producto prod){
int res=0;
micon= MiConexion.getInstancia();
//obtener conexion
con=micon.getConection();
if(con==null){return 0;}
// insertar
String sql = "insert into producto "
+ "(codigo,nombre,marcamodelo,preciounitario, preciodocena,"
+ "cantidad,idcategoria, tienedescuento,porcentajedescuento,estadoproducto,talla) "
+ "values (?,?,?,?,?,?,?,?,?,?,?)";
try{
//crear una sentencia preparada

sentenciaPreparada = con.prepareStatement(sql);
sentenciaPreparada.setInt(1, prod.getCodigo());
sentenciaPreparada.setString(2, prod.getNombre());
sentenciaPreparada.setString(3, prod.getMarcamodelo());
sentenciaPreparada.setDouble(4, prod.getPreciounitario());
sentenciaPreparada.setDouble(5, prod.getPreciodecena());
sentenciaPreparada.setInt(6, prod.getCantidad());
sentenciaPreparada.setInt(7, prod.getIdcategoria());
sentenciaPreparada.setBoolean(8, prod.isTienedescuento());
sentenciaPreparada.setDouble(9, prod.getPorcentajedescuento());
sentenciaPreparada.setString(10, prod.getEstadoproducto());
sentenciaPreparada.setString(11, prod.getTalla());
//ejecutar la sentencia
res=sentenciaPreparada.executeUpdate();
//executeUpdate ejecuta sentencias de insert update y delete y retorna un int con el numero
de las filas afectadas
}catch(SQLException sqle){
System.out.println("Error en guardar producto");
System.out.println(sqle.getMessage());
}finally{
try{
con.close();
}catch(SQLException sqle){

System.out.println("Guardar Producto: error en cerrar conexion");


System.out.println(sqle.getMessage());
}
}
return res;
}

METODO CONSULTAR CON VARIAS TABLAS


public ArrayList<Producto> consultar(String criterio){
ArrayList<Producto> lista=null;
micon= MiConexion.getInstancia();
con=micon.getConection();
// consultar
String query = "select * from producto as p,categoria as c where"
+ " p.estado=1 and p.idcategoria=c.id ";

// crear la sentencia
try{
if (criterio.equals("")) {
sentenciaPreparada = con.prepareStatement(query);
}else{ // si hay criterio de busqueda
query = query + " and p.nombre like concat('%',?,'%')";
sentenciaPreparada = con.prepareStatement(query);
sentenciaPreparada.setString(1, criterio );
}
//ejecutar la sentencia
//executeQuery para select
resultset = sentenciaPreparada.executeQuery();
if(resultset!=null){
lista=new ArrayList();
}else{return null;}
Producto p=null;
Categoria c=null;
//recorrer resultset
while(resultset.next()){//mientras haya n siguiente que leer
p=new Producto();
p.setId(resultset.getInt("p.id"));
p.setCodigo(resultset.getInt("p.codigo"));
p.setNombre(resultset.getString("p.nombre"));
p.setMarcamodelo(resultset.getString("p.marcamodelo"));
p.setPreciounitario(resultset.getDouble("p.preciounitario"));
p.setPreciodecena(resultset.getDouble("p.preciodocena"));
p.setIdcategoria(resultset.getInt("p.idcategoria"));
p.setEstadoproducto(resultset.getString("p.estadoproducto"));
p.setTienedescuento(resultset.getBoolean("p.tienedescuento"));
p.setPorcentajedescuento(resultset.getDouble("p.porcentajedescuento"));
p.setCantidad(resultset.getInt("p.cantidad"));
p.setImagen(resultset.getString("p.imagen"));
p.setTalla(resultset.getString("p.talla"));

c=new Categoria();
c.setId(resultset.getInt("c.id"));
c.setNombre(resultset.getString("c.nombre"));
p.setCategoria(c);

lista.add(p);//añadir a la lista
}

}catch(SQLException sqle){
System.out.println("error al consultar producto");
System.out.println(sqle.getMessage());

}finally{
try{
con.close();
}catch(SQLException sqle){
System.out.println("error al consultar producto: cerrar conexion");
System.out.println(sqle.getMessage());

}
return lista;

}
METODO ELIMINAR

public int eliminar(Producto prod){


int res=0;
micon= MiConexion.getInstancia();
//obtener conexion
con=micon.getConection();
if(con==null){return 0;}
String sql = "update producto set estado=0 where id =?";

try{
//crear una sentencia preparada

sentenciaPreparada = con.prepareStatement(sql);
sentenciaPreparada.setInt(1, prod.getId());

res=sentenciaPreparada.executeUpdate();
//executeUpdate ejecuta sentencias de insert update y delete y retorna un int con el numero
de las filas afectadas
}catch(SQLException sqle){
System.out.println("Error en editar producto");
System.out.println(sqle.getMessage());
}finally{
try{
con.close();
}catch(SQLException sqle){

System.out.println("Editar Producto: error en cerrar conexion");


System.out.println(sqle.getMessage());
}
}

return res;
}
METODO EDITAR
public int editar(Producto prod){
int res=0;
micon= MiConexion.getInstancia();
//obtener conexion
con=micon.getConection();
if(con==null){return 0;}
// insertar
String sql = "update producto set nombre=?,"
+ " codigo=?,marcamodelo=?,"
+ "preciounitario=?, preciodocena=?,"
+ "cantidad=?, idcategoria=?, "
+ "tienedescuento=?, porcentajedescuento=?, "
+ "estadoproducto=? where id=?";
try{
//crear una sentencia preparada

sentenciaPreparada = con.prepareStatement(sql);
sentenciaPreparada.setString(1, prod.getNombre());
sentenciaPreparada.setInt(2, prod.getCodigo());
sentenciaPreparada.setString(3, prod.getMarcamodelo());
sentenciaPreparada.setDouble(4, prod.getPreciounitario());
sentenciaPreparada.setDouble(5, prod.getPreciodecena());
sentenciaPreparada.setInt(6, prod.getCantidad());
sentenciaPreparada.setInt(7, prod.getIdcategoria());
sentenciaPreparada.setBoolean(8, prod.isTienedescuento());
sentenciaPreparada.setDouble(9, prod.getPorcentajedescuento());
sentenciaPreparada.setString(10, prod.getEstadoproducto());
sentenciaPreparada.setInt(11, prod.getId());
//ejecutar la sentencia
res=sentenciaPreparada.executeUpdate();
//executeUpdate ejecuta sentencias de insert update y delete y retorna un int con el numero
de las filas afectadas
}catch(SQLException sqle){
System.out.println("Error en editar producto");
System.out.println(sqle.getMessage());
}finally{
try{
con.close();
}catch(SQLException sqle){

System.out.println("Editar Producto: error en cerrar conexion");


System.out.println(sqle.getMessage());
}
}

return res;
}

You might also like