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

Recibir un objeto en vez de una variable

Estas en el tema de Recibir un objeto en vez de una variable en el foro de Java en Foros del Web. Hola buenos dias comunidad! a ver quien me puede ayudar. Paso a consultar: Tengo una clase cliente. Que como pueden ver tiene variables y objetos ...
  #1 (permalink)  
Antiguo 01/04/2014, 07:01
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Recibir un objeto en vez de una variable

Hola buenos dias comunidad! a ver quien me puede ayudar. Paso a consultar:
Tengo una clase cliente. Que como pueden ver tiene variables y objetos
Código Java:
Ver original
  1. int idCliente;
  2.     String RazonSocial;
  3.     String Telefono1;
  4.     String Telefono2;
  5.     String Web;
  6.     String Email;
  7.     String Direccion;
  8.     String Observaciones;
  9.     Double Descuento;
  10.     Cuenta Cuenta;
  11.     Localidad Localidad;
  12.     Provincia Provincia;
  13.     Pais Pais;


y por otro lado

Código Java:
Ver original
  1. public ArrayList<Cliente> traerClientes() throws Exception {
  2.  
  3.         String sql= "SELECT * FROM cliente";
  4.  
  5.         Connection con = Conexion.getConnection();
  6.         Statement st=con.createStatement();
  7.         ResultSet rs=st.executeQuery(sql);
  8.  
  9.         ArrayList <Cliente> al= new ArrayList<Cliente>();
  10.  
  11.  
  12.         while(rs.next()){
  13.             Cliente c= new Cliente();
  14.             c.setIdCliente(rs.getInt("idCliente"));
  15.             c.setRazonSocial(rs.getString("razonSocial"));
  16.             c.setTelefono1(rs.getString("telefono1"));
  17.             c.setTelefono2(rs.getString("telefono2"));
  18.             c.setWeb(rs.getString("web"));
  19.             c.setEmail(rs.getString("email"));
  20.             c.setDireccion(rs.getString("direccion"));
  21.             c.setObservaciones(rs.getString("observaciones"));
  22.             c.setDescuento(Double.parseDouble(rs.getString("descuento")));
  23.             c.setLocalidad(rs.getString("localidad"));
  24.             c.setCuenta(rs.getString("cuenta"));
  25.             c.setProvincia(rs.getString("provincia"));
  26.             c.setPais(rs.getString("pais"));
  27.             //agrega todos los clientes al arrayList
  28.             al.add(c);
  29.         }
  30.         //retorna el array lista de clientes
  31.         return al;
  32.  
  33.     }

tengo un metodo que recibe todos esos datos y los vuelca en un array de cliente.
Mi consulta es:
Cuando quiero recibir un dato de una variable por ejemplo pongo lo siguiente:
Código Java:
Ver original
  1. c.setPais(rs.getString("pais"));

ahora cuando quiero recibir un objeto que posee mas variable no creo q este bien asi:

c.setLocalidad(rs.getString("localidad"))

por que lo calidad es un objeto ( Localidad Localidad como pueden verlo en la clase cliente que puse al principio.

Soy principiante alguien me puede ayudar? graciass!!
  #2 (permalink)  
Antiguo 01/04/2014, 07:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Recibir un objeto en vez de una variable

Localidad es un objeto... ¿cómo guardas ese objeto en base de datos? ¿en otra tabla con todos sus columnas?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 01/04/2014, 07:13
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Recibir un objeto en vez de una variable

Cita:
Iniciado por chuidiang Ver Mensaje
Localidad es un objeto... ¿cómo guardas ese objeto en base de datos? ¿en otra tabla con todos sus columnas?

Se bueno.

Si localidad es un objeto y en la base de datos lo guardo como otra tabla:

Localidad tiene;

int idLocalidad;
String Nombre;
Provincia Provincia;
  #4 (permalink)  
Antiguo 01/04/2014, 11:32
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Recibir un objeto en vez de una variable

Buenas...
La idea sería la siguiente,
una vez que obtienes la Lista de clientes, para cada cliente, hacer una consulta que te obtenga la Localidad a la que pertenece

Código Java:
Ver original
  1. //Obtienes la lista de clientes
  2. List<Cliente> listaClientes = traerClientes();
  3. //Recorres la lista y obtienes la localidad para cada cliente
  4. for(Cliente c: listaClientes) {
  5.      Localidad localidad = obtenerLocalidad(c.getDniCliente());
  6.      c.setLocalidad(localidad);
  7. }

E implementas un método que obtenga la localidad a partir del DNI (suponiendo que esa sea la clave primaria del cliente).
Y la consulta sería algo así:

Código SQL:
Ver original
  1. SELECT DISTINCT l.* FROM tablaLocalidades l
  2. INNER JOIN tablaClientes c
  3. ON l.idLocalidad = c.idLocalidad WHERE c.dniCliente=?

Esa sería la idea, espero que te ayude a orientarte un poco.
Un saludo.

Etiquetas: clase, metodo, objeto, recibir, string, variable, vez
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 09:45.