Foros del Web » Programación para mayores de 30 ;) » Java »

obtener variable de un objeto desde una clase

Estas en el tema de obtener variable de un objeto desde una clase en el foro de Java en Foros del Web. Hola buen dia comunidad!! Tengo algo seguramente fácil para ustedes pero a mi me esta trabando bastante: Tengo 3 Clases: Producto, Familia y ProductoDao (que ...
  #1 (permalink)  
Antiguo 09/04/2014, 09:21
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
obtener variable de un objeto desde una clase

Hola buen dia comunidad!!

Tengo algo seguramente fácil para ustedes pero a mi me esta trabando bastante:

Tengo 3 Clases:

Producto, Familia y ProductoDao (que hace la conexion con la base)
Paso a mostrarlas:

Producto
Código Java:
Ver original
  1. package producto;
  2.  
  3. public class Producto {
  4.  
  5.     int idProducto;
  6.     String Codigo;
  7.     String Descripcion;
  8.     String Medidas;
  9.     int Stock;
  10.     Double Precio;
  11.    
  12.     Familia Familia;
  13.    
  14.     public Producto() {
  15.  
  16.     }
  17.    
  18.  
  19.  
  20.     public Producto(int idProducto, String codigo, String descripcion,
  21.             String medidas, int stock, Double precio, producto.Familia familia) {
  22.         super();
  23.         this.idProducto = idProducto;
  24.         Codigo = codigo;
  25.         Descripcion = descripcion;
  26.         Medidas = medidas;
  27.         Stock = stock;
  28.         Precio = precio;
  29.         Familia = familia;
  30.     }
  31.  
  32.  
  33.  
  34.     public int getIdProducto() {
  35.         return idProducto;
  36.     }
  37.  
  38.     public void setIdProducto(int idProducto) {
  39.         this.idProducto = idProducto;
  40.     }
  41.  
  42.     public String getCodigo() {
  43.         return Codigo;
  44.     }
  45.  
  46.     public void setCodigo(String codigo) {
  47.         Codigo = codigo;
  48.     }
  49.  
  50.     public String getDescripcion() {
  51.         return Descripcion;
  52.     }
  53.  
  54.     public void setDescripcion(String descripcion) {
  55.         Descripcion = descripcion;
  56.     }
  57.  
  58.     public String getMedidas() {
  59.         return Medidas;
  60.     }
  61.  
  62.     public void setMedidas(String medidas) {
  63.         Medidas = medidas;
  64.     }
  65.  
  66.     public int getStock() {
  67.         return Stock;
  68.     }
  69.  
  70.     public void setStock(int stock) {
  71.         Stock = stock;
  72.     }
  73.  
  74.     public Double getPrecio() {
  75.         return Precio;
  76.     }
  77.  
  78.     public void setPrecio(Double precio) {
  79.         Precio = precio;
  80.     }
  81.  
  82.  
  83.     public Familia getFamilia() {
  84.         return Familia;
  85.     }
  86.  
  87.  
  88.     public void setFamilia(Familia familia) {
  89.         Familia = familia;
  90.     }
  91.    
  92.    
  93. }

Familia:
Código Java:
Ver original
  1. package producto;
  2.  
  3. public class Familia {
  4.     int idFamilia;
  5.     String Codigo;
  6.     String Descripcion;
  7. }


ProductoDao
Código Java:
Ver original
  1. package dao;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. import java.util.ArrayList;
  7.  
  8. import conexion.Conexion;
  9. import producto.Familia;
  10. import producto.Producto;
  11.  
  12. public class ProductoDao {
  13.  
  14.  
  15.     /////////////////////Traer Clientes//////////////////////
  16.     public ArrayList<Producto> traerProductos() throws Exception {
  17.  
  18.         String sql= "SELECT * FROM producto";
  19.  
  20.         Connection con = Conexion.getConnection();
  21.         Statement st=con.createStatement();
  22.         ResultSet rs=st.executeQuery(sql);
  23.  
  24.         ArrayList <Producto> al= new ArrayList<Producto>();
  25.  
  26.         while(rs.next()){
  27.             Producto p= new Producto();
  28.             p.setIdProducto(rs.getInt("idProducto"));
  29.             p.setCodigo(rs.getString("Codigo"));
  30.             p.setDescripcion(rs.getString("Descripcion"));
  31.             p.setMedidas(rs.getString("Medidas"));
  32.             p.setStock(rs.getInt("Stock"));
  33.             p.setPrecio(Double.parseDouble(rs.getString("Precio")));
  34.             //agrega todos los clientes al arrayList
  35.             al.add(p);
  36.         }
  37.         //retorna el array lista de clientes
  38.         return al;
  39.  
  40.     }
  41. }

Ahora mi pregunta es la siguiente:
En ProductoDao yo voy seteando todas sus variables, como tengo q setear por ejemplo el idFamilia de la clase familia???

no se como llamar a un clase y setearle el valor. vi que algunos usan preparedStatement pero ami me gustaria hacerlo como lo tengo hecho
  #2 (permalink)  
Antiguo 09/04/2014, 10:02
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: obtener variable de un objeto desde una clase

¿ "SELECT * FROM producto" te devuelve algún dato de familia?

Si sí, primero tienes que hacer un new Familia(), añadirle el dato y añadir el objeto Familia a Producto. El orden es cuestión de gusto, lo importante es que tienes que crear el objeto Familia y añadirlo al objeto Producto.

Si "SELECT * FROM producto" no devuelve ningún dato de Familia, tendrías que cambiar tu select por otra con join de familia y producto.

El preparedStatement no tiene que ver con el "seteo" y en tu caso no tiene mucho sentido porque no le estás pasando ninguna variable a la select, pero si se la pasases deberías usarlo.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 09/04/2014, 10:27
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: obtener variable de un objeto desde una clase

Producto ya tiene el objeto familia creado

Código Java:
Ver original
  1. public class Producto {
  2.  
  3.     int idProducto;
  4.     String Codigo;
  5.     String Descripcion;
  6.     String Medidas;
  7.     int Stock;
  8.     Double Precio;
  9.    
  10.     Familia Familia;

select * from productos me devuelve todos los productos con los datos que le seteo en productoDao

el tema es que no le estoy seteando la familia porque no se como hacerlo

en caso de una variable lo hago asi:

Código Java:
Ver original
  1. p.setIdProducto(rs.getInt("idProducto"));

y en caso de un objeto como es familia? como lo hago?

como le añado la familia a un producto?

Gracias
  #4 (permalink)  
Antiguo 09/04/2014, 12:40
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: obtener variable de un objeto desde una clase

Cita:
Producto ya tiene el objeto familia creado
No, tienes una posición de memoria reservada para un objeto Familia, pero no existe, mientras no lo crees será un null.

Cita:
y en caso de un objeto como es familia? como lo hago?

como le añado la familia a un producto?
Ya te lo he dicho, tienes que crear un objeto Familia exactamente igual que cualquier objeto (con new), llenarlo con datos y asignarlo a la referencia familia de producto que todavía es null.

Si no lo entiendes, repasa los conceptos básicos de java. De nada te sirve hacer accesos a base de datos si ni siquiera sabes qué es y cómo funciona un objeto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: clase, objeto, string, valor, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:26.