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

guardar objeto de arraylist

Estas en el tema de guardar objeto de arraylist en el foro de Java en Foros del Web. tengo este metodo: public usuario buscar_usuario1(String login, String pass) throws SQLException{ usuario_array = dao.getUsuariosArray(); usuario usu = null; for (int i=0;i<this.usuario_array.size();i++){ if ((usuario_array.get(i).getLogin().equalsIgnoreCase (login)) && ...
  #1 (permalink)  
Antiguo 16/05/2011, 06:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
guardar objeto de arraylist

tengo este metodo:

public usuario buscar_usuario1(String login, String pass) throws SQLException{
usuario_array = dao.getUsuariosArray();
usuario usu = null;
for (int i=0;i<this.usuario_array.size();i++){
if ((usuario_array.get(i).getLogin().equalsIgnoreCase (login)) && (usuario_array.get(i).getPass().equalsIgnoreCase(p ass) )) {
usu = this.usuario_array.get(i);
System.out.println(usu.getTipo());
}else{
usu=null;
}
}
return usu;
}

usuario_array = dao.getUsuariosArray(); es un array de usuarios con atributos,que lo recorro y lo que quiero es sacar el objeto usuario que me coincida con el login y pass.
con System.out.println(usu.getxxxx),hago pruebas a ver si pasa por ahi el programa,y si que pasa,voy poniendo getLogin(),getNombre(),... y me lo enseña todo,pero cuando pongo System.out.println(this.usuario_array.get(i));; que es lo que quiero guardar,me pone :
practica.MODELO.usuario@7cd37a

osea que en usu = this.usuario_array.get(i); que es lo que devuelvo,no me guarda nada,o algo pero no un usuario.

a ver si alguien sabe que es lo que me falla.
Un saludo y graciasss!!!!
  #2 (permalink)  
Antiguo 16/05/2011, 06:28
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: guardar objeto de arraylist

Puedes poner el código donde defines el arrayList para tener más información.

Por lo que dices, es muy raro, porque si te deja con los otros métodos (getLogin y getNombre).

Pon también la definición de clase usuario.
  #3 (permalink)  
Antiguo 16/05/2011, 09:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: guardar objeto de arraylist

el arraylist lo cojo de una bd y el metodo es este en una clase Dao:

public ArrayList<usuario> getUsuariosArray() throws SQLException{
usuario usu;
ArrayList<usuario> usuario_array = new ArrayList<usuario>();
String consulta = "Select * from APP.USUARIO";

ResultSet cursor = conexion.createStatement().executeQuery(consulta);
while (cursor.next()) {
usu = new usuario(cursor.getString("DNI"), cursor.getString("NOMBRE"), cursor.getString("APELLIDO1"), cursor.getString("APELLIDO2"), cursor.getString("LOGIN"), cursor.getString("PASSWORD"), cursor.getString("TIPO"));
usuario_array.add(usu);
}
return usuario_array;
}



y la clase usuario es:

public class usuario {
protected String DNI;
private String Nombre;
private String Apellido1;
private String Apellido2;
private String login;
private String password;
private String tipo;
public usuario(){
}

public usuario(String DNI,String Nombre,String Apellido1,String Apellido2,String login,String password, String tipo){
this.DNI=DNI;
this.Nombre=Nombre;
this.Apellido1=Apellido1;
this.Apellido2=Apellido2;
this.login=login;
this.password=password;
this.tipo=tipo;
}

public String getNombre() {
return Nombre;
}
public String getApellido1() {
return Apellido1;
}
public String getApellido2() {
return Apellido2;
}
public String getLogin() {
return login;
}
public String getPass() {
return password;
}
public String getTipo() {
return tipo;
}
public usuario Identificarse (String login, String password) {
return null;
}

}
  #4 (permalink)  
Antiguo 16/05/2011, 10:34
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: guardar objeto de arraylist

La verdad es que no veo donde puede estar el error, pero lo que si veo es que para buscar un usuario te complicas mucho, pudiendo hacer la búsqueda del usuario directamente en la base de datos.


Código:


public usuario getUsuario(string login,string password) throws SQLException{
usuario usu;
usuario pusuario = new usuario();
String consulta = "Select * from APP.USUARIO WHERE LOGIN = '"+login+"' AND PASSWORD = '"+password+"'";

ResultSet cursor = conexion.createStatement().executeQuery(consulta);
while (cursor.next()) {
usu = new usuario(cursor.getString("DNI"), cursor.getString("NOMBRE"), cursor.getString("APELLIDO1"), cursor.getString("APELLIDO2"), cursor.getString("LOGIN"), cursor.getString("PASSWORD"), cursor.getString("TIPO"));
}
return usuario;
}
  #5 (permalink)  
Antiguo 16/05/2011, 10:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: guardar objeto de arraylist

si yo lo tenia hecho como me dices tu,y asi es mucho mas facil,pero mi profesor de ingenieria de software quiere que tengamos un catalogo de usuarios que tenga un array con todos los usuario para una mayor cohesion y un menor acoplamiento.
  #6 (permalink)  
Antiguo 16/05/2011, 11:33
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: guardar objeto de arraylist

Cita:
practica.MODELO.usuario@7cd37a
Esto te lo pone porque no has sobreescrito el método toString de Usuario.

Lo que está mal es que no sales del bucle for, supón que encuentras a tu usuario en el puesto 15 de 30, seguirás ejecutando el bucle hasta 30 devolviendo un null, a menos que el último sea el que buscas.
__________________
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.
  #7 (permalink)  
Antiguo 16/05/2011, 12:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: guardar objeto de arraylist

he añadido el metodo toString a la clase usuario que es la siguiente:
public String toString(){
return (DNI +" "+ Nombre +" "+ Apellido1 +" "+ Apellido2 +" "+ login +" "+ password +" "+ tipo);
}


y si con eso ya no me sale practica.MODELO.usuario@7cd37a,si no que ya me sale el usuario bien.

y para solucionar lo del for,puse un break:
public usuario buscar_usuario1(String login, String pass) throws SQLException{
usuario_array = dao.getUsuariosArray();
usuario usu = null;
for (int i=0;i<this.usuario_array.size();i++){
//System.out.println(usuario_array.get(i));
//EL ARRAY ESTA LLENO
if ((usuario_array.get(i).getLogin().equalsIgnoreCase (login)) && (usuario_array.get(i).getPass().equalsIgnoreCase(p ass) )) {
usu = this.usuario_array.get(i);
System.out.println(usuario_array.get(i));
break;
}else{
usu=null;
}
}
return usu;
}


pero,no se lo que pasa que me sigue sin entrar,os voy a poner el metodo que lo llama que esta en otra clase que es el siguiente,a lo mejor ahi esta el fallo:
public void busca_usuario(String login, String pass) throws SQLException{
usuario usu = null;

usu = controlador.busca_usuario(login, pass);

if(usu==null)
muestra_error("No existe ese empleado");

else
muestra_mensuario(usu);
}
  #8 (permalink)  
Antiguo 16/05/2011, 13:02
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: guardar objeto de arraylist

Para depurar existe el debug, lo de los system.out es una solución cutre que todos usamos de vez en cuando, pero cuando hay un problema hay que hacerlo bien, con el debug.

Si quieres ver si usu está cogiendo el usuario, lo lógico es que pongas el system.out antes del return, no que leas del array con un get.

Por lo demás parece que está bien, así que puede ser que estés llamando dos veces al método, y la segunda te devuelva null.

¿Cuando falla te muestra "No existe ese empleado" o no hace lo que tú esperas?
__________________
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.
  #9 (permalink)  
Antiguo 16/05/2011, 16:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: guardar objeto de arraylist

ok,ya esta solucionado,en conclusion que si que me llegaba un usuario a usu,el problema estaba en que al tener el usuario llamaba a muestra_mensuario,y ese metodo si que estaba mal,porque hacia mal la llamada a las ventanas y por eso no me salian.
muchas gracias por la ayuda.

Etiquetas: arraylist, objeto
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:54.