JAVA
MANUEL RETAMOZO A.
ARQUITECTURA N CAPAS EN JAVA Para esta ocasión de realizara un ejemplo de Mantenimiento de Datos desde Java (NetBeans) en conexión a MySql utilizando la Base de Datos Ventas. Con respecto a la BD Ventas crearemos sus respectivas tablas y campos pero utilizaremos solo la Tabla Artículos para realizar los diversos mantenimientos desde el formulario en Java.
En primer lugar Creamos un Proyecto de Aplicación Java (Nombre:N-Capas),despues de ello se tiene que agregar el Driver mysql Jdbc a la Librería del Proyecto(Para conectarnos con la BD Ventas),luego creamos los 3 Paquetes(Capas) con sus respectivas Clases.
Donde: -el Paquete Idat.DAO =Representa a la Capa Datos Idat.BEANS=Representa a la Capa Negocio - el Paquete Idat.BEANS=Representa -el Paquete Idat.Forms =Representa a la Capa Presentacion JAVA
Página 1
JAVA
MANUEL RETAMOZO A.
1)Dentro de la Capa Idat.DAO en la clase Modulo.java se realiza la conexión a BD Ventas mediante 2 funciones. package Idat.DAO; import java.sql.*; public class Modulo { String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/ventas"; String user="root"; String pwd="";
public ResultSet Listar(String Cad){ try{ Class.forName(driver).newInstance(); Connection cn=DriverManager.getConnection(url,user,pwd); PreparedStatement da = cn.prepareStatement(Cad); ResultSet tbl = da.executeQuery(); return tbl; }catch(Exception e){ javax.swing.JOptionPane.showMessageDialog(null,e.getMessage()); return null; } }
public String Ejecutar(String Cad){ try{ Class.forName(driver).newInstance(); Connection cn=DriverManager.getConnection(url,user,pwd); PreparedStatement da = cn.prepareStatement(Cad); int r=da.executeUpdate(); return "Se afectaron " + r + " filas"; }catch(Exception e){ javax.swing.JOptionPane.showMessageDialog(null,e.getMessage()); return "Error "+e.getMessage(); } } }
JAVA
Página 2
JAVA
MANUEL RETAMOZO A.
1)Dentro de la Capa Idat.BEANS en la clase Articulos.java se realizaran las funciones de Grabar,Editar,Eliminar Grabar,Editar,Eliminar y Listar Articulos y además de ello se declararan las variables y se encapsularán. package Idat.BEANS; import java.util.ArrayList; import java.sql.*; import Idat.DAO.Modulo; public class Articulos { //Variables a encapsular private private private private private private
public
String art_cod; String art_nom; String art_uni; double art_pre; int art_stk; String art_marca;
String EliminarArticulo(){
Modulo objmod=new Modulo(); String cad="delete from articulos where art_cod='"+this.getArt_cod()+"'"; return objmod.Ejecutar(cad); }
public String GrabarArticulo(){ Modulo objmod=new Modulo(); String cad="insert into articulos values('"+this.getArt_cod()+"','"+this.getArt_nom()+ "','"+this.getArt_uni()+"','"+this.getArt_pre()+ "','"+this.getArt_stk()+"',"+"'"+this.getArt_marca()+"')"; return objmod.Ejecutar(cad); }
JAVA
Página 3
JAVA
MANUEL RETAMOZO A.
public String EditarArticulo(){ Modulo objmod=new Modulo(); String cad="update articulos set art_nom='"+this.getArt_nom() +"',art_uni='"+this.getArt_uni()+"',art_pre='" +this.getArt_pre()+"',art_stk='"+this.getArt_stk() +"',art_marca='"+this.getArt_marca()+"' where art_cod='" +this.getArt_cod()+"'"; return objmod.Ejecutar(cad); }
public ArrayList
ListaArticulos(){ ArrayList lista2=new ArrayList(); try{ Modulo objmod=new Modulo(); ResultSet tabla=objmod.Listar("select * from articulos"); Articulos objart; while(tabla.next()){ objart=new Articulos(); objart.setArt_cod(tabla.getString("art_cod")); objart.setArt_nom(tabla.getString("art_nom")); objart.setArt_uni(tabla.getString("art_uni")); objart.setArt_pre(tabla.getDouble("art_pre")); objart.setArt_stk(tabla.getInt("art_stk")); objart.setArt_marca(tabla.getString("art_marca")); lista2.add(objart); } }catch(Exception e){ javax.swing.JOptionPane.showMessageDialog(null, e.getMessage()); } return lista2; }
-
Resultado de las Variables Encapsuladas
public String getArt_cod() { return art_cod; } public void setArt_cod(String art_cod) { this.art_cod = art_cod; }
JAVA
Página 4
JAVA
MANUEL RETAMOZO A.
public String getArt_nom() { return art_nom; } public void setArt_nom(String art_nom) { this.art_nom = art_nom; } public String getArt_uni() { return art_uni; } public void setArt_uni(String art_uni) { this.art_uni = art_uni; } public double getArt_pre() { return art_pre; } public void setArt_pre(double art_pre) { this.art_pre = art_pre; }
public int getArt_stk() { return art_stk; }
public void setArt_stk(int art_stk) { this.art_stk = art_stk; } public String getArt_marca() { return art_marca; } public void setArt_marca(String art_marca) { this.art_marca = art_marca; } }
JAVA
Página 5
JAVA
MANUEL RETAMOZO A.
-En la capa Idat.Forms creamos un Formulario jFrame con el nombre de Mantenimiento_Articulos.Java en el cual dentro de el agregaremos 6 jLabels,6 jTextFields,5 jButtons y un jTable. Se tiene que tener en cuenta que al jFrame se le a asignado como diseño Nulo, y al jTable en su opción “Contenido de Tabla” se le ha reducido tanto el numero de filas como los de columnas a cero para que cuando el jFrame cargue el jTable este vacio. package Idat.FORMS; import Idat.BEANS.Articulos; import java.util.ArrayList; import javax.swing.*; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.DefaultTableModel;
public class Mantenimiento_Articulos extends javax.swing.JFrame { public Mantenimiento_Articulos() { initComponents(); this.setSize(700,500); ListarArticulos(); } -Creando las siguientes 2 Funciones public void ListarArticulos(){ DefaultTableModel tabla=new DefaultTableModel(); Articulos objart=new Articulos(); ArrayList lista2=new ArrayList(); lista2=objart.ListaArticulos(); tabla.addColumn("Codigo"); tabla.addColumn("Nombre"); tabla.addColumn("Unidad"); tabla.addColumn("Precio"); tabla.addColumn("Stock"); tabla.addColumn("Marca"); tabla.setRowCount(lista2.size()); int i=0; for(Articulos x:lista2){ tabla.setValueAt(x.getArt_cod(), i, 0); tabla.setValueAt(x.getArt_nom(), i, 1); tabla.setValueAt(x.getArt_uni(), i, 2); tabla.setValueAt(x.getArt_pre(), i, 3); tabla.setValueAt(x.getArt_stk(), i, 4); tabla.setValueAt(x.getArt_marca(), i, 5); i++; } this.jTable1.setModel(tabla); } JAVA
Página 6
JAVA
MANUEL RETAMOZO A.
public void LimpiarCajasTexto(){ this.jTextField1.setText(""); this.jTextField2.setText(""); this.jTextField3.setText(""); this.jTextField4.setText(""); this.jTextField5.setText(""); this.jTextField6.setText(""); }
Salir poner el Siguiente Código: -Dentro del Botón Salir poner private void jButton5ActionPerformed(java.awt.even jButton5ActionPerformed(java.awt.event.ActionEvent t.ActionEvent evt) {
int r=JOptionPane.showConfirmDialog(null,"Esta Seguro?"); if(r==0){ System.exit(0); } }
-Dentro del jTable en su Evento MousePressed ponemos el Siguiente Código: private void jTable1MousePressed(java.awt.event.MouseEvent evt) { int rec=this.jTable1.getSelectedRow(); this.jTextField1.setText(jTable1.getValueAt(rec, this.jTextField1.setText(jTable1.getValueAt(rec, this.jTextField2.setText(jTable1.getValueAt(rec, this.jTextField2.setText(jTable1.getValueAt(r ec, this.jTextField3.setText(jTable1.getValueAt(rec, this.jTextField3.setText(jTable1.getValueAt(r ec, this.jTextField4.setText(jTable1.getValueAt(rec, this.jTextField4.setText(jTable1.getValueAt(r ec, this.jTextField5.setText(jTable1.getValueAt(rec, this.jTextField5.setText(jTable1.getValueAt(r ec, this.jTextField6.setText(jTable1.getValueAt(rec, this.jTextField6.setText(jTable1.getValueAt(r ec,
0).toString()); 1).toString()); 2).toString()); 3).toString()); 4).toString()); 5).toString());
}
Eliminar ponemos el Siguiente Código: -Dentro del Boton Eliminar ponemos private void jButton4ActionPerformed(java.awt.even jButton4ActionPerformed(java.awt.event.ActionEvent t.ActionEvent evt) {
int Res=JOptionPane.showConfirmDialog(null,"Esta seguro de Eliminar el Articulo: "+this.jTextField2.getText()); if(Res==0){ Articulos objart=new Articulos(); objart.setArt_cod(this.jTextField1.getText()); JOptionPane.showMessageDialog(null, objart.EliminarArticulo()); ListarArticulos(); JOptionPane.showMessageDialog(null,"Articulo JOptionPane.showMessageDialog(null,"A rticulo Eliminado"); } }
JAVA
Página 7
JAVA
MANUEL RETAMOZO A.
Grabar ponemos el Siguiente Código: -Dentro del Botón Grabar ponemos private void jButton2ActionPerformed(java.awt.even jButton2ActionPerformed(java.awt.event.ActionEvent t.ActionEvent evt) {
Articulos objart=new Articulos(); objart.setArt_cod(this.jTextField1.getText()); objart.setArt_nom(this.jTextField2.getText()); objart.setArt_uni(this.jTextField3.getText()); objart.setArt_pre(Double.parseDouble(this.jTextField4.getText()));
objart.setArt_stk(Integer.parseInt(this.jTextField5.getText())); objart.setArt_marca(this.jTextField6.getText()); JOptionPane.showMessageDialog(null, objart.GrabarArticulo()); ListarArticulos(); }
Editar ponemos el Siguiente Código: -Dentro del Botón Editar ponemos private void jButton3ActionPerformed(java.awt.even jButton3ActionPerformed(java.awt.event.ActionEvent t.ActionEvent evt) {
Articulos objart=new Articulos(); objart.setArt_cod(this.jTextField1.getText()); objart.setArt_nom(this.jTextField2.getText()); objart.setArt_uni(this.jTextField3.getText()); objart.setArt_pre(Double.parseDouble(this.jTextField4.getText()));
objart.setArt_stk(Integer.parseInt(this.jTextField5.getText())); objart.setArt_marca(this.jTextField6.getText()); JOptionPane.showMessageDialog(null, objart.EditarArticulo()); ListarArticulos(); }
-Dentro del Botón Nuevo ponemos el Siguiente Código: private void jButton1ActionPerformed(java.awt.even jButton1ActionPerformed(java.awt.event.ActionEvent t.ActionEvent evt)
{ LimpiarCajasTexto();//Llamando }
a la Funcion
}//Cierre Final de la Aplicación
JAVA
Página 8
JAVA
MANUEL RETAMOZO A.
-Al ejecutar la el jFrame debemos apreciar el resultado de la siguiente manera.
- Notese que al darle click en cualquier c ualquier celda del jTable automáticamente automáticamente los jTextFields se van llenando con los respectivos campos correspondientes al código del articulo ubicado el la primera celda de la fila seleccionada. -Al intentar eliminar un articulo nos saldría el cuadro de dialogo preguntándonos si estamos seguros.
JAVA
Página 9