MySQL - consultas

 
Vista:

consultas

Publicado por carlos (1 intervención) el 27/12/2008 22:08:59
Hola a todos estoy aprendiendo a usar MySQL y tengo un problema.
cuando hago una consulta de algo almacenado en la base de datos el programa retorna
la informacion como se espera, el problema esta cuando trato de consultar de nuevo, con los mismos parametros que ingrese en la consulta anterior, sin cerrar el programa(Java asociado) el programa retorna que no esta almacenado en la base , como va a ser eso posible si antes en la consulta retorno que si estaba la informacion.

estoy programando con netbeans
los parametros de entrada son: Nombres(nom) y apellidos(nom2)

public boolean Esta_enbase2(String sq, String tb, String nbd, String nb2, String nom, String nom2){

nom = "'" + nom + "'";
nom2 = "'" + nom2 + "'";
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost/MySQL";
String user = "root";
String pass = "1234";

Connection con = DriverManager.getConnection(url, user, pass);
PreparedStatement st = (PreparedStatement) con.prepareStatement("select * from " + sq +"."+ tb + " where " + nbd + " = " + nom + " and " + nb2 + " = " + nom2);

rs = st.executeQuery();

if(rs.next()){
return true;}

}catch (Exception e) {
System.out.println("No funciona esta en base 2");
System.out.print(e);
}
return false;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consultas

Publicado por Mandrake (14 intervenciones) el 28/12/2008 11:23:57
Tal vez cuando haces la segunda consulta el primer recorset empleado sigue activo y al momento que ejecutas el metodo next() estas pasando al segundo resultado de la misma consulta. Esto lo puedes verificar creando otro registro similar, si obtienesla consulta con éxito dos veces pero no una tercera entonces es lo que esta pasando.

Prueba cerrando la conexión y el statement:

if(rs.next()){ return true; }
st.close();
conn.close();

Recuerda que en Java los objetos se delaran con alcance en la página, la solicitud, la sesión o la aplicación... Y se acaban cuando llegan a su limite, cuando tu los terminas o cuando el sistema lo hace mediante el colector de basura, pero pueden quedar en memoria esperando a ser usados de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar