problemas con la consulta a bd

manuel
05 de Febrero del 2004
hola, tengo un problema al hacer la consulta a una bd desde una pagina jsp. Tengo una clase en java donde realizo la conexion y eso. La conexion la hace bien pero al hacer la consulta pongo:

ResultSet rs=gestor.realizarConsulta(con // conexion que hace bien // ,consulta.BUSCAR_LOGIN+login);
if (rs.next())
{
//ya existe el login
return -1;
}

en BUSCAR_LOGIN tengo esto

public static String BUSCAR_LOGIN=null;
static
{
BUSCAR_LOGIN = "Select login from usuario where login=";
}

en la pantalla del servidor me dice que falta un parametro, a ver si algun alma caritativa me puede decir que pasa, gracias mil
Saludos
manuel

isabel
05 de Febrero del 2004
Prueba a hacerlo así:
String sel = "Select login from usuario where login= ?";
PreparedStatement pstmt = con.prepareStatement(sel)
pstmt.setString(1, variable_login);
;
ResultSet rs = pstmt.executeQuery();

Espero que sea de tu ayuda, saludos.

manuel
05 de Febrero del 2004
muchas gracias ya sale, lo que me mosquea esque hize una practica haciendo eso y me salia, sabes porque iba mal?

IceMan
05 de Febrero del 2004
En tu consulta no encierras el login que quieres buscar entre comillas simples, y al evaluarse la select intenta igualar el campo login de la BBDD con lo que contiene la variable login (tomandolo como nombre de campo, no como literal).

En su respuesta, Isabel usa un PreparedStatement.setString y este metodo automaticamente de encierra el literal entre comillas, por eso te funciona.

Si pruebas a poner tu consulta así, debería funcionar:

ResultSet rs=gestor.realizarConsulta(con, consulta.BUSCAR_LOGIN + login + " ' ");
if (rs.next())
{
//ya existe el login
return -1;
}

en BUSCAR_LOGIN tengo esto

public static String BUSCAR_LOGIN=null;
static
{
BUSCAR_LOGIN = "Select login from usuario where login = ' ";
}

Salu2.