Você está na página 1de 9

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 String art_cod;


private String art_nom;
private String art_uni;
private double art_pre;
private int art_stk;
private String art_marca;

public 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<Articulos>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<Articulos> 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, 0).toString());
this.jTextField2.setText(jTable1.getValueAt(rec, 1).toString());
this.jTextField3.setText(jTable1.getValueAt(rec, 2).toString());
this.jTextField4.setText(jTable1.getValueAt(rec, 3).toString());
this.jTextField5.setText(jTable1.getValueAt(rec, 4).toString());
this.jTextField6.setText(jTable1.getValueAt(rec, 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