problemas con la consulta a bd
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
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
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.
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.
muchas gracias ya sale, lo que me mosquea esque hize una practica haciendo eso y me salia, sabes porque iba mal?
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.
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.