Duda con JSP
Que tal,
Tengo el siguiente problema que no he podido resolver, espero me puedan apoyar,quiza sea algo sencillo pero ya le di muchas vueltas y no llego a nada.
String dato="";
//manejo 2 conexiones diferentes hacia 2 bases que tengo en mi SQL Server
Connnection cn;
Connnection cn2;
Conexión con = new Conexion();
cn = con.conectarBase();
cn2 = con.conectarBaseOtra();
//Creo mis variables de conexión
//Primera Conexion
PreparedStatement cmd = null;
Statement st = null;
ResultSet rs = null;
//Segunda Conexion
PreparedStatement cmd2 = null;
Statement st2 = null;
ResultSet rs2 = null;
//Creo una lista para almacenar los resultados de mis consultas
LinkedList<Abonos> ListaFinal = new LinkedList<Abonos>();
Abonos ab = new Abonos();
Abonos ab2 = new Abonos();
try {
sql = "Select campo1,campo2 campo2 from tabla where campo1=? and campo2 =?";
cmd = cn.prepareStatement(sql);
cmd.setString(1, p1);
cmd.setString(2, p2);
st = cn.createStatement();
rs = cmd.executeQuery();
//Si hay datos obtengo el primero y lo almaceno en mi lista
while (rs.next()) {
dato = rs.getString("campo1");
ab.setDato(dato);
ListaFinal.add(ab);
try {
//Creamos otra consulta para que por cada dato que encuentre en la primera lo busque en esta siguiente consulta
// se lo paso como parametro
sql1 = "SELECT datos1, datos2"
+ " FROM tabla"
+ " WHERE (campo =?)";
cmd2 = cn2.prepareStatement(sql1);
cmd2.setString(1,dato);
st2 = cn2.createStatement();
rs2 = cmd2.executeQuery();
//Si encuentro registro de ese dato que estoy pasando como parámetro
while (rs2.next()) {
ab2.setFecha(rs2.getDate("datos1"));
ListaFinal.add(ab2);
}
} catch (Exception ex) {
System.out.println("Error:" + ex.getMessage());
} finally {
if (rs2 != null) {
rs2.close();
}
rs2 = null;
if (cmd2 != null) {
cmd2.close();
}
cmd2 = null;
cn2.close();
}
}
System.out.println(ListaFinal.size());
} catch (Exception ex) {
System.out.println("Error achis :" + ex.getMessage());
} finally {
cn.close();
cmd.close();
st.close();
}
return ListaFinal;
}
El problema que tengo es que me dice que la conexion se cierra antes de que se pase el otro dato
Alguien me podria indicar que estoy haciendo mal, espero haberme explicado
Gracias
}
- Inicie sesión o regístrese para enviar comentarios
La conexión
La conexión cn2 la estás cerrando (cn2.close() ) dentro de un finally que está en el ciclo while (rs.next()) ... puedes abrir otra vez la conexión cada iteración del while, aunque lo mejor sería cerrarla afuera del ciclo.
Creo que es eso me confundí un poco por la indentación.
Muchas gracias efectivamente
Muchas gracias efectivamente ese es el problema, ya lo corregí y esta listo !!!!