elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:57  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Ejemplo de 3 capas con java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplo de 3 capas con java  (Leído 13,933 veces)
Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Ejemplo de 3 capas con java
« en: 25 Abril 2010, 08:21 »

Buenas Comunidad, quisiera saber si alguien conoce algun ejemplo de un proyecto diseñado en 3 capas con el lenguaje java, ya que estoy por iniciarme en esto y no se como esta el asunto, ya se lo que es 3 capas pero no me vendria mal un ejemplo basico. Gracias por su ayuda!!


En línea
sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #1 en: 25 Abril 2010, 17:42 »

yo trabajo con tres capas y pienso que no puedes aver preguntado nada mejor las tres capas son execelentes te ayudadn a crear aplicacion muy prefesionales siguiendo todas las cosas buenas que deve tener un buen software reutilisacion escalabilidad desacoplamineto y lo mas importante a lo que veo muy pocos que hacen es no mesaclar la logica de usuario con  la logica de la aplicacion

con eso te olvidas del maldito codigo autogenerado con sus horribles 100 lineas que solo sirven para poner el layaut incrustado con con la logica de la aplicacion si quieres cambiar de vista sin usar 3 capas tendrias que cambiarlo todo en cambio si usas 3 capas solo cambias la vista

las 3 capas no es un patron de diseño devido a que no resulve un problema standar si no que te dise de forma estricta como modelar toda la aplicacion

si trabajas con 3 capas + injecion de dependencias + interfases y clases abstractas te va a quedar un sisitema digno de un ingniero



En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #2 en: 25 Abril 2010, 17:54 »

las 3 capas sireven para proyectos muy grandes que quieran perdurar por los siglos de los siglos si no es asi mejor trabaja solo en 2 capas

lamentablemente no es perfecta y e notado cosas muy feas aserca de las 3 capas

aumenta la cantidad de codigo henormente lo que no significa que el codigo este desordenado al contrario se pone muy desacoplado

buelve demasiado lento al principio como siempre hacer algo estricto y muy helaborado(una arquitectura) sienpre es lento al principio pero al muy largo plaso devuelbe el costo con intereses

no tiene muy buena integracion con ides esepto netbenas(cada capa seria un modulo)

no tiene una capa que yo la yamaria de especificacion o comun en la cual iria todos las clases e interfases que son comunes en todas las capas

En línea

Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: entiendo
« Respuesta #3 en: 25 Abril 2010, 18:10 »

pero yo solamente busco un ejemplo para guiarme como debe ser leerme el codigo para entendermelo por mi mismo e buscado en san google y no hay buenos ejemplos si alguien tuviera un ejemplo en java usando 3 capas..gracias y saludos
En línea
sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #4 en: 25 Abril 2010, 19:03 »

si sigo con el ejemplo lo voy a terminar en casi hora y media para la tarde ya va estar posteado

-yo trabajo con una variacion de 3 capas en realidad trabajo con 4 capas con una cuarta que seria la capa comun en donde estan dos paquetes el paquetes de entidades o (objetos de negocio) y el paquete de interfases(esas interfases que son comunes en tre las capas)

este post es el que mas te va a gustar voy a explicar como se inplementa en java 3 capas en un sentido mas tecnico y en el idioma de un programador casi nadie lo ase asi suelen ser demasiado teoricos y no dan un ejemplo concreto
el ejemplo es el mas sencillo que se me pueda ocurrir va a ser un sistema para un restaurante que funciona bajo una misma pc sin nada espectaular(injecion de dependencias,clases abstractas) si el ejemplo no va con lo que necesitas puedes avisarme para acomodarlo a tu caso

- las capas por recomendacion serian paquetes en netbenas ademas serian modulos

-para la capa comun hiria  en com.PollitosPeru.sistemaVenta.comun

-en la capa de datos hirian clases que se conecten con la fuente de base de datos siendo el caso mas comun conectarse con una base de datos relacional con jdbc o alguna especificacion de jpa yo ago el ejemplo con jdbc siendo el nombre del paquete com.PollitosPeru.sistemaVenta.datos ademas una clase que represente mi conexion en particular ConexionPollito importara a  com.PollitosPeru.sistemaVenta.comun

-en la capa de logica de negocio estar en el paquete com.PollitosPeru.sistemaVenta.logica aca pondre mi logica de negocio y solo logica por ningun motivo importara del paquete javax.swing o alguna libreria grafica
con excepción de que llame a las clases que representen modelos como javax.swing.table.AbstractableModel o javax.swing.TableModel solo hara importaciones a la capa de datos y a la capa comun no habra sin ninguna excepción importaciones al paquete java.sql o javax.sql o alguno que se equivalente

-en la capa de vista hira dentro del paquete com.PollitosPeru.sistemaVenta.vista aqui abra las todos los formularios las clases que sean hijos nietos o vistnientos de Componet si es formulario comensar con Frm como FrmLoguin FrmCaja y si es panel comensara con Pan como PanCabeseraCaja PanDetalleCaja aca tambien pondras las clases que hagan graficos estadisticos o impriman reportes
En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #5 en: 26 Abril 2010, 00:38 »

Código
package com.pollitosperu.sistemaVentas.comun.Entidades;
 
/**
*
* @author luis
*/

public class Producto {
   private int codigo;
   private String nombre;
   private int cantidad;
   private String descripcion;
 
   public int getCodigo() {
       return codigo;
   }
 
   public void setCodigo(int codigo) {
       this.codigo = codigo;
   }
 
 
   public String getNombre() {
       return nombre;
   }
 
   public void setNombre(String nombre) {
       this.nombre = nombre;
   }
 
   public int getCantidad() {
       return cantidad;
   }
 
   public void setCantidad(int cantidad) {
       this.cantidad = cantidad;
   }
 
   public String getDescripcion() {
       return descripcion;
   }
 
   public void setDescripcion(String descripcion) {
       this.descripcion = descripcion;
   }
}
 
 

Código
package com.pollitosperu.sistemaVentas.comun.Interfases;
 
import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
import java.util.ArrayList;
 
public interface IdaoProducto {
 
   public void agreagProducto(Producto producto);
 
   public void eliminaProducto(int codigo);
 
   public void modificaProducto(int codigo, Producto producto);
 
   public ArrayList<Producto> listaProductos();
}
 
« Última modificación: 26 Abril 2010, 00:45 por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #6 en: 26 Abril 2010, 00:39 »

Código
package com.pollitosperu.sistemaVentas.datos;
 
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
*
* @author luis
*/

public class ConexionPollito {
 
   private Connection conection = null;
 
   public Connection getConection() {
       if (conection == null) {
           try {
               Driver driver = new com.mysql.jdbc.Driver();
               DriverManager.registerDriver(driver);
               conection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pollitosperu", "root", "root");
           } catch (SQLException ex) {
               ex.printStackTrace();
               Logger.getLogger(ConexionPollito.class.getName()).log(Level.SEVERE, null, ex);
           }
       }
       return conection;
   }
}
 

Código
package com.pollitosperu.sistemaVentas.datos;
 
import com.pollitosperu.sistemaVentas.comun.Entidades.Interfases.IdaoProducto;
import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
 
/**
*
* @author luis
*/

public class DBdaoProducto implements IdaoProducto {
 
   private Connection connection = new ConexionPollito().getConection();
 
   public void agreagProducto(Producto producto) {
       try {
           CallableStatement statement = connection.prepareCall("{call agreagaProducto (?,?,?)}");
           statement.setString("nombre", producto.getNombre());
           statement.setInt("cantidad", producto.getCantidad());
           statement.setString("descripcion", producto.getNombre());
           statement.executeUpdate();
       } catch (SQLException ex) {
           ex.printStackTrace();
       }
 
   }
 
   public void eliminaProducto(int codigo) {
       try {
           CallableStatement statement = connection.prepareCall("{call eliminaProducto (?)}");
           statement.setInt("cod", codigo);
           statement.executeUpdate();
       } catch (SQLException ex) {
           ex.printStackTrace();
       }
 
   }
 
   public void modificaProducto(int codigo, Producto producto) {
       try {
           CallableStatement statement = connection.prepareCall("{call modificaProducto (?,?,?,?)}");
           statement.setInt("cod", codigo);
           statement.setString("nom", producto.getNombre());
           statement.setInt("cant", producto.getCantidad());
           statement.setString("descrip", producto.getNombre());
           statement.executeUpdate();
       } catch (SQLException ex) {
           ex.printStackTrace();
       }
   }
 
   public ArrayList<Producto> listaProductos() {
       ArrayList<Producto> productos = new ArrayList<Producto>();
       try {
           CallableStatement statement = connection.prepareCall("{call listaProductos }");
           ResultSet resultSet = statement.executeQuery();
           while (resultSet.next()) {
               Producto producto = new Producto();
               producto.setNombre(resultSet.getString("nombre"));
               producto.setCodigo(resultSet.getInt("codigo"));
               producto.setCantidad(resultSet.getInt("cantidad"));
               producto.setDescripcion(resultSet.getString("descripcion"));
               productos.add(producto);
           }
           return productos;
       } catch (SQLException ex) {
           ex.printStackTrace();
           return null;
       }
   }
}
 
En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #7 en: 26 Abril 2010, 00:42 »

Código
package com.pollitosperu.sistemaVentas.logica;
 
import com.pollitosperu.sistemaVentas.comun.Entidades.Interfases.IdaoProducto;
import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
import com.pollitosperu.sistemaVentas.datos.DBdaoProducto;
import java.util.ArrayList;
 
/**
*
* @author luis
*/

public class DaoProducto implements IdaoProducto {
 
   private DBdaoProducto daoProducto = new DBdaoProducto();
 
   public DaoProducto() {
   }
 
 
   public void agreagProducto(Producto producto) {
       daoProducto.agreagProducto(producto);
   }
 
   public void eliminaProducto(int codigo) {
       daoProducto.eliminaProducto(codigo);
   }
 
   public void modificaProducto(int codigo, Producto producto) {
       daoProducto.modificaProducto(codigo, producto);
   }
 
   public ArrayList<Producto> listaProductos() {
       return daoProducto.listaProductos();
   }
}
 

Código
package com.pollitosperu.sistemaVentas.vista;
 
import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
import com.pollitosperu.sistemaVentas.logica.DaoProducto;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.DefaultListModel;
 
 
/**
*
* @author luis
*/

public class FrmProducto extends javax.swing.JFrame {
 
......
 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
 
       DaoProducto daoProducto = new DaoProducto();
       Producto producto = new Producto();
       producto.setNombre(txtnombre.getText());
       producto.setDescripcion(txtDescripcion.getText());
       producto.setCantidad(Integer.parseInt(txtCantidad.getText()));
       daoProducto.agreagProducto(producto);
   }
 
 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       DaoProducto daoProducto = new DaoProducto();
       daoProducto.eliminaProducto(1);
   }  
 
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       DaoProducto daoProducto = new DaoProducto();
       ArrayList<Producto> productos = daoProducto.listaProductos();
       Iterator iterator = productos.iterator();
       DefaultListModel defaultListModel = new DefaultListModel();
       jList1.setModel(defaultListModel);
       defaultListModel.clear();
       while (iterator.hasNext()) {
           Producto producto = new Producto();
           producto = (Producto) iterator.next();
           defaultListModel.addElement(producto.getNombre());
       }
 
   }
 
 
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       DaoProducto daoProducto = new DaoProducto();
       Producto producto = new Producto();
       producto.setNombre(txtnombre.getText());
       producto.setDescripcion(txtDescripcion.getText());
       producto.setCantidad(Integer.parseInt(txtCantidad.getText()));
       daoProducto.modificaProducto(Integer.parseInt(txtcodigo.getText()), producto);
   }    
 
}fin de clase
 
 


« Última modificación: 26 Abril 2010, 00:50 por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #8 en: 26 Abril 2010, 00:51 »

preguntas traumas maleteos y amenasas hacer el post correspondiente   :xD
En línea

Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: Trauma
« Respuesta #9 en: 26 Abril 2010, 23:41 »

me gustaria ver tus interfaces de usuario para guiarme ps xq el resto esta comprensible ok man gracias saludos..
En línea
sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #10 en: 27 Abril 2010, 04:14 »

lol que grasioso toma tanto esfuerso y estan laborioso y lento trabjar con 3 capas para que me digas como ago mi interfas de usuario

si me dices que es fácil de entender te desviste a ver dado cuenta que lo único que ase es eliminar modificar guardar y listar productos no es necesario saber mas tu creas el formulario como se te venga en gana

bien te repito toda la ida en la capa de la vista creo mis formularios como se me vengan en gana puedo aserio de la manera mas diferente posible por ejemplo la interfase que yo e usado es muy fea y horrible la hice a si a propósito por que nadie la iba a ver y edemas no me interese en los detalles para que se vea bien si quieres tu a puedes hacer muy diferente usando iconos fuentes de letras salva pantallas vanerers transparencias .

la idea de todos es que las clases que estan dentro del paquete vista instancies objetos del paquete lógica a si puedas crear el formulario como se te de la gana y no tengas que modificar nada mas
En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #11 en: 27 Abril 2010, 04:59 »

bueno para darte el gusto

En línea

-Ramc-


Desconectado Desconectado

Mensajes: 493



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #12 en: 27 Abril 2010, 17:32 »

Excelente post sapito169, gracias por aportarnos cómo trabajar con 3 capas, está muy bien explicado y entendible, me gusta como trabajas el diseño de las 3 capas, es cierto que el código queda más grande e incluso algunos lo pueden ver repetitivo, pero, al tener que modificar algo de la aplicación se ven los beneficios.  ;-)
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #13 en: 27 Abril 2010, 20:54 »

-acerca de que si es repetitivo si lo es y es espectacularmente lento  :rolleyes:
pero eso se puede resolver usando reflexion (reinventando la rueda) o mejor aun usando jpa
-en vista que el post fue un Éxito  voy hacer el siguiente post acerca de como hacer 3 capas usando la especificación de jpa asi se olvidan de hacer su dao(la clase que agrega modifica y elimina) por entidad
usar 3 capas con jpa es espectacularmente practico y mas rápido que con la manera que les e enseñado validad para jdbc tal ves haga un video de como hacer las capas en netbenas pero eso todavía dentro de una semana
En línea

jaivsa

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #14 en: 8 Septiembre 2010, 18:03 »

Hola Sapito169. quisiera saber si ya has colgado como programar en 3 capas con la implementacion jpa que mencionas, este ejemplo realmente es genial, y se agradece a  gente como tu por estos sitios.

Un saludo.
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como hacer menus en JAVA Ejemplo XD
Java
Neostream 2 25,252 Último mensaje 22 Enero 2006, 02:23
por Ragnarok
Ejemplo de código Java para creación de un Socket HTTP
Hacking Básico
ccaneta 1 1,663 Último mensaje 7 Junio 2008, 03:22
por ChElAnO
ejemplo basico de cola en java
Java
chaarlyyyy 3 7,707 Último mensaje 16 Julio 2010, 06:06
por danyelk_6u5
un ejemplo de troyano en java
Java
AngelCruel 10 2,563 Último mensaje 13 Agosto 2010, 18:28
por Darhius
Cálculos Java, mi primner ejemplo
Java
Meta 2 1,878 Último mensaje 9 Febrero 2011, 02:10
por Meta
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines