Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] No trae Registros

Estas en el tema de No trae Registros en el foro de Java en Foros del Web. Tengo dos clases que se conectan a la misma bd de Oracle, por medio de la misma clase conexion, la clase 1 funciona perfecto pero ...
  #1 (permalink)  
Antiguo 19/03/2014, 14:43
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
No trae Registros

Tengo dos clases que se conectan a la misma bd de Oracle, por medio de la misma clase conexion, la clase 1 funciona perfecto pero la segunda clase no me trae registros. ambas clases tienen sus respectivos variables creadas con getters y setters.

Agradezco cualquier idea, por que no entiendo que pasa.

esta es la clase conexion:

public class ConexionEco
{
private static String url = "jdbc:oracle:thin:@10.1.6.197:1521:SALVA";
private static String user ="SALVA";
private static String password = "SALVA";

Connection cn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
cn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
System.out.println("Error --> " + e);
cn = null;
} catch (Exception e) {
System.out.println("Error --> " + e);
cn = null;
}
return cn;
}

Esta es la clase con la que traigo los datos :

public class DBListas {

public LinkedList<RegistrosListas> getEcoListas() throws SQLException
{
LinkedList<RegistrosListas> listaEcoLista = new LinkedList<RegistrosListas>();
Connection connL = null;
try {
connL = ConexionEco.getConexion();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (connL != null) {
PreparedStatement psL;
String consulta;
consulta="Select distinct ZGE_OFI_COMER codsuc, SUBSTR(ZGE_NOM_OFI_COMER,1,28) nomsuc, ZGE_DIV_REG canal from LFV_ZONAS_GEOGRAFICAS t where t.ZGE_DIV_REG in (15,20)";
try {
psL = connL.prepareStatement(consulta);
ResultSet rs1 =psL.executeQuery();
while (rs1.next()){
RegistrosListas contactoL = new RegistrosListas();
contactoL.setcodigo(rs1.getInt("codsuc"));
contactoL.setdescripcion(rs1.getString("descsuc")) ;
listaEcoLista.add(contactoL);
}
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try { // cierro la conexion con la base de datos
if (connL != null && !connL.isClosed()) {
connL.close();
}
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
return listaEcoLista;
}

}

finalmente dentro de un JSP, publico los datos :

DBListas cDB2 = new DBListas();
LinkedList<RegistrosListas> listaEcoListas = cDB2.getEcoListas();
out.println("***");
for (int i=0;i<listaEcoListas.size();i++)
{
out.println("<td align=right>");
out.println(listaEcoListas.get(i).getcodigo());
out.println("</td>");
}
  #2 (permalink)  
Antiguo 20/03/2014, 01:43
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: No trae Registros

Hola buenas,

antes de nada, la próxima vez formatea el código para que sea más fácil de leer, porque sino es horrible jajaja

Desde las dos clases llamas a la clase DBListas no?

Puede que el problema esté en que no cierras nunca ni el ResultSet ni el PreparedStatement, pruebas a cerrarlos en el finally junto a la conexion, añadiendo tambien una sentencia de comprobación

Código Java:
Ver original
  1. if(rs1!=null){
  2.      rs1.close();
  3. }
  4. if(psL!=null){
  5.      psL.close();
  6. }

Un saludo.
  #3 (permalink)  
Antiguo 20/03/2014, 07:15
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: No trae Registros

gracias por tu apoyo rgf1987.

Perdon por el codigo, como se pega con formato????

En vista del problema que tenia, cada clase la 1 y la 2 las conecto a travez de la clase conexion, pero los linkedlist, los hago por medio de dos clases diferentes....DBREGISTROS Y DBLISTAS, las abri por que pense que era un problema de reutilizacion, los recordset y los preparedstatement son diferentes y en ambos casos cierro la conexion a la bd
  #4 (permalink)  
Antiguo 20/03/2014, 07:40
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: No trae Registros

Encontre el error que tenia, por si a alguien le pasa :

dentro del LINKEDLIST, los getter reciben lo que sea y por eso no me generaba error pero los campos resultantes del query deben estar correctamente escritos

ejemplo :
select cod_ciudad ciudad, desc_ciudad desc from tabla ....etc

en el linkedlist escribi :
contactoL.setcodigo(rs1.getInt("ciudad"));
contactoL.setdescripcion(rs1.getString("nomciudad" ));
no me generaba error pero al parecer al utilizar mal el nombre del campo del query no me traia nada.

solucion escribir bien el nombre del campo y listo. gracias a todos.
  #5 (permalink)  
Antiguo 20/03/2014, 08:48
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: No trae Registros

no me fije en como habias hecho la consulta jaja, como decias que en una de las clases te funcionaba ni miré para ello

De todos modos cerrar los ResultSet y los PreparedStatement es tan importante como cerrar la conexión, para evitar futuros problemas.

Para dar formato al texto, cuando escribes el mensaje, pones el código, lo seleccionas y arriba a la derecha hay un combo que te permite indicar que formato le quieres dar al texto (HTML, PHP, Java.... etc)

Un saludo.

Etiquetas: clase, jsp, registros, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:37.