ayuda, NullPointerException recuperando un resultset

hektor
04 de Noviembre del 2003
Hola, primeramente gracias por haber abierto este foro donde podemos exponer nuestros problemas y dudas.

Mi problema es que estoy ejecutando una sentencia SQL desde una interfaz statement como sigue:

instruccionX = "select stbusua_codigo,stbusua_password from stbusua where stbusua_nombre like '%" + usuaP + "%';";

resultadoRS = stat.executeQuery(instruccionX);

donde stat es una interfaz tipo Statement.
usuaP es un argumento de doGet
resultadoRS es una variable tipo resultSet para almacenar el query.

El problema esta en que me manda una excepcion de puntero nulo, y encontre que stat es nulo. Intente usar los metodos execute() y getResultSet() conjuntamente en vez de utilizar solo executeQuery()de la interfaz stat pero sucede lo mismo, alguien sabe que puedo hacer?

Ken
04 de Noviembre del 2003
Por partes...

¿Estás seguro de que esa sentencia devuelve algo? ¿Has probado a ejecutarla contra la base datos tal cual, a mano? Lo digo porque el modo en que la haces me resulta un tanto peculiar... si los campos que quieres sacar se llaman "codigo" y "password" y pertenecen a la tabla "stbusua", debes poner stbusua.codigo (con punto) y no stbusua_codigo (con _). Si no es así, si los campos se llaman efectivamente stbusua_codigo y están en la tabla stbusua, pasamos al siguiente posible error, que lo mismo está en la estructura de la consulta también.

Prueba a utilizar un PreparedStatement en lugar de un Statement. Es mejor, porque te olvidas de comillas simples para especificar cadenas y demás, simplemente colocas los comodines y luego especificas lo que va allí. Ejemplo:

PreparedStatement st=conexion.prepareStatement("SELECT codigo, password FROM stbusua WHERE nombre like %?%");
//Nótese el comodín ?
st.setString(1, usuaP);
//Le decimos que en el primer comodín, coloque como cadena el valor de usuaP
resultadoRS=st.executeQuery();
if(resultadoRS.next()){
//---Bla bla bla
}else{
//No hay resultados
}

A ver si te sirve, ya nos dirás. Salu2

Ken