Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2008, 10:40
Onuris
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta preparedStatement() no preparado

Hola, estoy armando un pequeño proyecto con J2EE y estoy trabado en u problema.
Puntualmente es un preparedStatement que o se prepara, es decir, le paso el parametro y no lo toma, obviamente debo estar haciendo algo mal que no veo, la cosa es asi, el parametro se lo paso usado javaBeans desde una pagina jsp, lo pasa bien, ya que en debug mode veo en el campo 'cuit' (que es como se llama) que esta el valor que yo ingrese. el tema es que al ejecutar "sentencia.setString(1, cuit);" no carga el valor en el query.
Este es el codigo de mi clase:
Código:
public class ConsultaCuitBD {

	private String cuit;
	private boolean valido = false;
	private boolean hayError = false;
	
	//campos de la bd a mostrar
	private String empresa;
	private String domicilio;
	private String telefono1;
	private String telefono2;
	private String mail;
	private String clave;
	private String categoria;
	private String ejecutivo;
	private String vendedor;
	private String estado;
	
	private boolean ejecutarConsulta() throws SQLException{
		boolean existe = false;
		
		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 * FROM AGUSTIN.EMPRESAS WHERE CUIT = ?";
		
		try{
			System.out.println("Iniciando DRIVER "+DRIVER+"...");
			Class.forName(DRIVER);
			System.out.println("Driver iniciado - Conectando a URL "+URL+"...");
			coneccion = DriverManager.getConnection(URL);
			System.out.println("Coneccion exitosa - Iniciando QUERY "+QUERY+"...");
			sentencia = coneccion.prepareStatement(QUERY);
			System.out.println("QUERY preparado - Seteando OBJECT consultaCuit "+cuit+"...");
			sentencia.setString(1, cuit);
			System.out.println("Ejecutando sentencia "+QUERY+"...");
			sentencia.executeQuery();
			System.out.println("Sentencia "+QUERY+" ejecutada exitosamente.");
			
			if(resultado.next()){
				//si encontro
				existe = true;
				empresa = resultado.getString("EMPRESA");
				cuit = resultado.getString("CUIT");
				domicilio = resultado.getString("DOMICILIO");
				telefono1 = resultado.getString("TELEFONO1");
				telefono2 = resultado.getString("TELEFONO2");
				mail = resultado.getString("MAIL");
				clave = resultado.getString("CLAVE");
				categoria = resultado.getString("CATEGORIA");
				ejecutivo = resultado.getString("EJECUTIVO");
				vendedor = resultado.getString("VENDEDOR");
				estado = resultado.getString("ESTADO");
			} else {
				existe = false;
			}
		} catch (Exception 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 getCuit(){
		return cuit;
	}

	public void setCuit(String c){
		cuit = c;
	}
	public boolean isValid(){
		if(valido) return true;
		try{
			valido = ejecutarConsulta();
			hayError = false;
		}catch(Exception e){
			valido = false;
			hayError = true;
		}
		return valido;
	}
	
	public boolean isError(){
		return hayError;
	}
El codigo continua con el resto de los getters, pero no le veo motivo a poner todo lo demas.

Alguno me puede decir donde me equivoco??

Gracias de antemano