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

datos de la BD y jsp

Estas en el tema de datos de la BD y jsp en el foro de Java en Foros del Web. Buenas Tengo una pregunta, si estoy accesando informacion de una BD y hago lo siguiente: String id1 = new String (request.getParameter("id")); //recogemos la variable que ...
  #1 (permalink)  
Antiguo 23/10/2006, 21:25
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta datos de la BD y jsp

Buenas

Tengo una pregunta, si estoy accesando informacion de una BD y hago lo siguiente:
String id1 = new String (request.getParameter("id")); //recogemos la variable que pasamos por la direccion
Class.forName ("org.postgresql.Driver");
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/SIMILM_BD", "user", "pass");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM alicate where id_producto =" + id1);

No consigo acceder a ese registro, solo si hago el rs de esta manera:

ResultSet rs = stmt.executeQuery("SELECT * FROM alicate where id_producto = 'HM001001'");

debe ser un problema de concatenación, pero no hayo la manera de solucionarlo, ademas con este último rs yo quiero conseguir el campo id_producto, pero cada vez que lo hago me pide una referencia con el next() es decir debo hacer un rs.next() a juro y no logro acceder a ese simple registro, no hay manera de hacerlo? o tengo que tener un rs con mas de un registro a juro?


Gracias
  #2 (permalink)  
Antiguo 24/10/2006, 01:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años
Puntos: 2
Te faltan las comillas que pones cuando cuando pones directamente el valor del código:
ResultSet rs = stmt.executeQuery("SELECT * FROM alicate where id_producto ='" + id1+"'");

Luego tanto si obtienes un registro como si obtienes n, siempre tienes que hacer un next para posicionarte en el primer o siguiente registro (devuelve true si hay más registros).

un saludo
  #3 (permalink)  
Antiguo 27/10/2006, 09:27
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
un solo registro

pero si obtengo un solo registro como puedo obtener los datos si no hay un next, apenas le invoque el .next() ya no habran mas datos
  #4 (permalink)  
Antiguo 27/10/2006, 13:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años
Puntos: 2
Nada más ejecutar una select el ResultSet que obtienes está posicionado en la posición anterior al primer registro, por lo que la primera vez que ejecutas .next lo que hace es posicionarse en el registro número 1. Este método (next()) devuelve true si hay registro siguiente y false en caso contrario. Si solo tienes un registro la primera vez que ejecutes next() devuelve true y la segunda false.
  #5 (permalink)  
Antiguo 27/10/2006, 21:25
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
Gracias

Gracias por la ayuda
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 21:03.