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

Duda al traer un dato de la BD

Estas en el tema de Duda al traer un dato de la BD en el foro de Java en Foros del Web. Que tal, mi duda es en la siguiente parte del codigo, por que no me traigo nada de mi consulto a la BD, en donde ...
  #1 (permalink)  
Antiguo 23/11/2010, 22:06
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 0
Duda al traer un dato de la BD

Que tal, mi duda es en la siguiente parte del codigo, por que no me traigo nada de mi consulto a la BD, en donde esta mal? aqui el codigo:

Código:
public String obtenerIDUsuario(){
	    String id = "";
		try {
			Statement st = adaptador.createStatement();
			ResultSet rs = st.executeQuery("SELECT MAX(No_empleado) FROM usuario");
			while (rs.next()){
				id = rs.getString("No_empleado");
			}
			rs.close();
			st.close();

		} catch (SQLException e) {
			//e.printStackTrace();

		}
		return id;
	}
Pero no me arroja ningun resultado cuando regreso la variable id, donde me estoy equivocando?

Gracias y saludos
  #2 (permalink)  
Antiguo 24/11/2010, 05:03
Avatar de LordJhony  
Fecha de Ingreso: septiembre-2010
Mensajes: 472
Antigüedad: 11 años, 3 meses
Puntos: 24
Respuesta: Duda al traer un dato de la BD

Te aconsego intentar con una consulta general (select * from usuario). Si esta consulta te arroga resultados entonces deberias mirar la sintaxis de tu consulta original. En caso contrario el problema estaria en tu variable Resultset la cual no te esta tomando la consulta talvez porque tu variable Statement esta nula.
  #3 (permalink)  
Antiguo 24/11/2010, 05:34
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 14 años
Puntos: 41
Respuesta: Duda al traer un dato de la BD

Hay varias cosas que estás haciendo mal...

1 - La peor de todas es ignorar la EXCEPTION QUE TE ESTARÍA DICIEND Y AYUDANDO MUCHISIMO A DARTE CUENTA CUAL ES TU ERROR por lo cual pensás que tu query "no te está retornando nada".

2 - la columna que te retorna tu consulta NO TIENE NOMBRE, por lo tanto esta linea

Una sencilla solución sería cambiar esto:
rs.getString("No_empleado");
por:
rs.getString(1);

id = rs.getString("No_empleado");
te está dando una SQLException
Un poco de SQL:
Acá la columna de retorno no tiene ningún nombre (pero si un index)
SELECT MAX(No_empleado) FROM....
no es lo mismo que
SELECT MAX(No_empleado) as No_empleado FROM

Código Java:
Ver original
  1. try {
  2.    Statement st = adaptador.createStatement();
  3.    ResultSet rs = st.executeQuery("SELECT MAX(No_empleado) FROM usuario");
  4.    while (rs.next()){
  5.            id = rs.getString("No_empleado");
  6.    }
  7.    rs.close();
  8.    rs.close();
  9.    } catch (SQLException e) {
  10.        //e.printStackTrace();     <---IGNORANDO EXCEPTION?!!?? dónde aprenden esto??
  11.    }
  12.    return id;

Observación: tu id (No_empleado) es un String/character varying? para hacer rs.getString(.........) en vez de rs.getInt(.......).
__________________
BadProgrammerException!

Etiquetas: bd, dato
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:33.