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 - el Paquete Idat.BEANS=Representa a la Capa Negocio -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 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(""); } -Dentro del Botón Salir poner el Siguiente Código: private void jButton5ActionPerformed(java.awt.event.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.jTextField2.setText(jTable1.getValueAt(rec, this.jTextField3.setText(jTable1.getValueAt(rec, this.jTextField4.setText(jTable1.getValueAt(rec, this.jTextField5.setText(jTable1.getValueAt(rec, this.jTextField6.setText(jTable1.getValueAt(rec,
0).toString()); 1).toString()); 2).toString()); 3).toString()); 4).toString()); 5).toString());
}
-Dentro del Boton Eliminar ponemos el Siguiente Código: private void jButton4ActionPerformed(java.awt.event.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 Eliminado"); } }
JAVA
Página 7
JAVA
MANUEL RETAMOZO A.
-Dentro del Botón Grabar ponemos el Siguiente Código: private void jButton2ActionPerformed(java.awt.event.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(); } -Dentro del Botón Editar ponemos el Siguiente Código: private void jButton3ActionPerformed(java.awt.event.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.event.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 celda del jTable 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