Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: Ejemplo de 3 capas con java (Leído 13,933 veces)
|
Rijhording
Desconectado
Mensajes: 41
|
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
Mensajes: 421
|
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
Mensajes: 421
|
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
Mensajes: 41
|
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
Mensajes: 421
|
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
Mensajes: 421
|
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; } } 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
|
|
|
|
|
|
|
|
Rijhording
Desconectado
Mensajes: 41
|
 |
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
Mensajes: 421
|
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
Mensajes: 421
|
-acerca de que si es repetitivo si lo es y es espectacularmente lento  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
Mensajes: 1
|
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
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como hacer menus en JAVA Ejemplo XD
Java
|
Neostream
|
2
|
25,252
|
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
|
7 Junio 2008, 03:22
por ChElAnO
|
|
|
ejemplo basico de cola en java
Java
|
chaarlyyyy
|
3
|
7,707
|
16 Julio 2010, 06:06
por danyelk_6u5
|
|
|
un ejemplo de troyano en java
Java
|
AngelCruel
|
10
|
2,563
|
13 Agosto 2010, 18:28
por Darhius
|
|
|
Cálculos Java, mi primner ejemplo
Java
|
Meta
|
2
|
1,878
|
9 Febrero 2011, 02:10
por Meta
|
|