Tengo un problema con mi aplicacion, tengo un preparedStatement y un resultset, la coneccion con la base ya esta ok y carga el driver perfecto, supuestamente tendria que utilizar executeQuery(QUERY) pero cuando veo los valores que estan dentro de 'QUERY' es un valor hexa, me dijeron que tengo que utilizar sentencia.execute() directamente pero tampoco me deja, que hago??
aca esta el codigo:
ValidadorUsuario.java
Código:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class ValidadorUsuario {
private String usuario;
private String password;
private String nombre;
private boolean valido = false;
private Exception ultimaExcepcion;
private boolean hayError = false;
private boolean buscarElUsuarioYLaPass() throws SQLException{
Connection coneccion = null;
PreparedStatement sentencia = null;
ResultSet resultado = null;
String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
String URL = "jdbc:derby:e:\\Usuarios";
String QUERY = "SELECT PASSWORD, USUARIO FROM AGUSTIN.LOGIN WHERE USUARIO = ?";
boolean existe = false;
try {
System.out.println("Cargando el driver..."); //agregado de prueba
Class.forName(DRIVER);
System.out.println("Cargado OK."); //agregado de prueba
System.out.println("Conectando..."); //agregado de prueba
coneccion = DriverManager.getConnection(URL);
System.out.println("URL: "+URL); //agregado de prueba
System.out.println("Preparando sentencia..."); //agregado de prueba
sentencia = coneccion.prepareStatement(QUERY);
sentencia.setString(1, usuario);
System.out.println("Sentencia: " + sentencia); //agregado de prueba
resultado = sentencia.executeQuery(QUERY); //valor de QUERY en hexa
//resultado = sentencia.execute(); //no funciona,
// no puede convertir de boolean a ResultSet
if(coneccion!=null){
System.out.println("OK - Se conecto"); //agregado de prueba
}
if (resultado.next()&& password.equals(resultado.getString("PASSWORD"))){
nombre = resultado.getString("USUARIO");
existe = true;
}
} catch (Exception e) {
hayError = true;
ultimaExcepcion = e;
e.printStackTrace();
} finally {
if (resultado != null) resultado.close();
if (sentencia != null) sentencia.close();
if (coneccion != null) coneccion.close();
}
return existe;
}
//Getters y Setters
public String getUsuario(){
return usuario;
}
public void setUsuario(String u){
usuario = u;
}
public void setPassword(String u){
password = u;
}
public String getNombre(){
return nombre;
}
public boolean isValid(){
if(valido) return true;
try{
hayError = false;
valido = buscarElUsuarioYLaPass();
}catch(Exception e){
ultimaExcepcion = e;
valido = false;
hayError = true;
}
return valido;
}
public boolean isError(){
return hayError;
}
public Exception getUltimaExcepcion(){
return ultimaExcepcion;
}
}
Que comando uso para pasar el query armado como corresponde?