Java Method to Load Race Data from a Database into a List

Computers2.35 KB

Método llenarLista()


Este método carga las carreras desde la base de datos y las agrega a una lista, junto con las posiciones de cada carrera y los puntos de los pilotos.

private void llenarLista() {
    try {
        modeloLista = (DefaultListModel) lista.getModel();
        Statement sentenciaCarreras = conexion.createStatement();
        String sql = "SELECT * FROM carreras ORDER BY ncarrera;";
        java.sql.ResultSet rsCarreras = sentenciaCarreras.executeQuery(sql);
        System.out.println(sql);
        int nCarrera;
        java.util.Date fecha; /* PARA DIFERENCIAR java.util DE java.sql */
        String nombre;
        String circuito;
        double km;
        int nVueltas;
        javax.swing.ImageIcon mapa;
        while (rsCarreras.next()) {
            nCarrera = rsCarreras.getInt("ncarrera");
            fecha = rsCarreras.getDate("fecha");
            nombre = rsCarreras.getString("nombre");
            circuito = rsCarreras.getString("circuito");
            km = rsCarreras.getDouble("km");
            nVueltas = rsCarreras.getInt("nvueltas");
            byte[] bMapa = rsCarreras.getBytes("mapa2");
            mapa = new ImageIcon(bMapa);
            Carrera c = new Carrera(nCarrera, fecha, nombre, circuito, km, nVueltas, mapa);
            modeloLista.addElement(c);
            Statement sentenciaPosiciones = conexion.createStatement();
            String sql2 = "SELECT * FROM posiciones WHERE ncarrera=" + nCarrera + " ORDER BY posicion;";
            rsPosiciones = sentenciaPosiciones.executeQuery(sql2);
            ArrayList posicionesP = new ArrayList<>();
            while (rsPosiciones.next()) {
                int nCarreras = rsPosiciones.getInt("ncarrera");
                int dorsal = rsPosiciones.getInt("dorsal");
                int posicion = rsPosiciones.getInt("posicion");
                /* OBJETO PILOTO */
                Piloto pil = pilotos.get(dorsal - 1);
                /* OBJETO POSICION */
                Posicion pos = new Posicion(posicion, pil);
                int puntos = pil.getPuntos() + pos.getPuntos();
                pil.setPuntos(puntos);
                posicionesP.add(pos);
            }
            c.setPosiciones(posicionesP);
            carreras.add(c);
        }
    } catch (java.sql.SQLException e) {
        e.printStackTrace();
    }
}

Download

PDF Word HTML