Ver Mensaje Individual
  #12 (permalink)  
Antiguo 14/10/2013, 13:43
Avatar de jomaruro
jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 22 años, 6 meses
Puntos: 361
Respuesta: linkedlist dentro de una lista desplegable no funciona

Hola:

El problema está, creo, en que en el LinkedList necesitas un objeto Registro y estás recibiendo un objeto Conexion. Yo lo haría de otra manera.

En la clase conexión dejaría solo la conexión con la base de datos:

Código Java:
Ver original
  1. public class Conexion {
  2.  
  3.     /*
  4.      *      La URL con la cual nos conectarémos a la base de datos.
  5.      */
  6.     private static String url = "jdbc:oracle:thin:@10.10.6.152:1521:intrac";
  7.     /*
  8.      *      El usuario de la base de datos.
  9.      */
  10.     private static String user = "XxsV2344";
  11.     /*
  12.      *      La clave del usuario de la base de datos.
  13.      */
  14.     private static String password = "Xxsv2344";
  15.  
  16.     /*
  17.      *      Método para obtener la conexión con la base de datos.
  18.      */
  19.     public static synchronized Connection getConexion() {
  20.         Connection cn;
  21.         try {
  22.             /*
  23.              *      Cargamos el driver
  24.              */
  25.             Class.forName("oracle.jdbc.driver.OracleDriver");
  26.             /*
  27.              *      Obtenemos la conexión
  28.              */
  29.             cn = DriverManager.getConnection(url, user, password);
  30.         } catch (SQLException e) {
  31.             System.out.println("Error --> " + e);
  32.             cn = null;
  33.         } catch (Exception e) {
  34.             System.out.println("Error --> " + e);
  35.             cn = null;
  36.         }
  37.         return cn;
  38.     }
  39. }

La clase Registro la dejaría tal y como está. El siguiente paso es que crearía otra clase, por ejemplo DBRegistros para todas las operaciones con la clase Registros, donde incluiría la inserción de registros, actualización de registros, borrado de registros y consulta de registros.

Por ejemplo:

Código Java:
Ver original
  1. public class DBRegistros {
  2.     public LinkedList<Registros> getContactos() {
  3.         LinkedList<Registros> listaContactos = new LinkedList<Registros>();
  4.         Connection conn = null;
  5.         try {
  6.             conn = Conexion.getConexion();
  7.         } catch (Exception e) {
  8.             System.out.println(e.getMessage());
  9.         }
  10.         if (conn != null) {
  11.             PreparedStatement ps;
  12.             String consulta;
  13.             consulta = "select t.epol_jefe_inmediato dir, t.epol_tipo_negocio tp, t.epol_ramo_contable ramon, sum(t.epol_facturado_mes) vlr from LFV_EXT_POLIZAS t where t.epol_ramo_contable in (1,23,34,40) and t.epol_cod_loc_neg=1003 and t.epol_jefe_inmediato=9937 and to_char(t.epol_ano)=2013 and to_char(t.epol_mes)=8 group by t.epol_jefe_inmediato, t.epol_tipo_negocio, t.epol_ramo_contable order by tp, ramon ";
  14.             try {
  15.                 ps = conn.prepareStatement(consulta);
  16.                 ResultSet rs = ps.executeQuery();
  17.                 while (rs.next()) {
  18.                     Registro contacto = new Registro();
  19.                     contacto.setId(rs.getInt("dir"));
  20.             contacto.setNombre(rs.getString("tp"));
  21.             contacto.setRamo(rs.getInt("ramon"));
  22.                     contacto.setValor(rs.getDouble("vlr"));
  23.             listaContactos.add(contacto);
  24.                 }
  25.             } catch (SQLException e) {
  26.                 System.out.println(e.getMessage());
  27.             } catch (Exception e) {
  28.                 System.out.println(e.getMessage());
  29.             } finally {
  30.                 try { // cierro la conexion con la base de datos
  31.                     if (conn != null && !conn.isClosed()) {
  32.                         conn.close();
  33.                     }
  34.                 } catch (SQLException e) {
  35.                     System.out.println(e.getMessage());
  36.                 } catch (Exception e) {
  37.                     System.out.println(e.getMessage());
  38.                 }
  39.             }
  40.         }
  41.         return listaContactos;
  42.     }
  43. }

Y por último, donde haces el iterator cambias esta línea:

Código Java:
Ver original
  1. LinkedList<Registros> lista = Conexion.getContactos();

por esta otra:

Código Java:
Ver original
  1. LinkedList<Registros> lista = DBRegistros.getContactos();

Y si no me equivoco debería funcionarte.

Saludos.



P.D.: Es posible que en algunos casos me haya equivocado y haya puesto Registro donde debería poner Registros, supongo que te darás cuenta.