java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java
changeset 32 3bc16e43872b
parent 28 dbb434bd4b99
     1.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java	Sun Feb 15 23:15:30 2009 +0100
     1.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java	Sun Feb 15 23:22:23 2009 +0100
     1.3 @@ -18,7 +18,9 @@
     1.4      private enum SQL {
     1.5  
     1.6          VLOZ_SOUHRN,
     1.7 -        SMAZ_SOUHRNY
     1.8 +        SMAZ_SOUHRNY,
     1.9 +        IP_ADRESY_OBDOBI,
    1.10 +        IP_PREKLAD
    1.11      }
    1.12  
    1.13      /**
    1.14 @@ -61,12 +63,38 @@
    1.15                       */
    1.16                      psSouhrn.setDate(1, rs.getDate("den"));
    1.17                      psSouhrn.setString(2, rs.getString("ip"));
    1.18 -                    psSouhrn.setString(3, prelozIP(rs.getString("ip")));
    1.19 +                    psSouhrn.setString(3, null);
    1.20                      psSouhrn.setInt(4, rs.getInt("pocet"));
    1.21                      psSouhrn.setInt(5, cil.getId());
    1.22                      psSouhrn.executeUpdate();
    1.23                  }
    1.24                  zavri(null, psSouhrn, null);
    1.25 +
    1.26 +                /**
    1.27 +                 * Přeložíme všechny IP adresy daného období
    1.28 +                 * a aktualizujeme domény všude (i jiné cíle a jiná období).
    1.29 +                 */
    1.30 +                PreparedStatement psIPselekt = dbSouhrn.prepareStatement(getSQL(SQL.IP_ADRESY_OBDOBI));
    1.31 +                psIPselekt.setInt(1, cil.getId());
    1.32 +                psIPselekt.setDate(2, zacatek);
    1.33 +                psIPselekt.setDate(3, konec);
    1.34 +                PreparedStatement psIPupdate = dbSouhrn.prepareStatement(getSQL(SQL.IP_PREKLAD));
    1.35 +                ResultSet rsIP = psIPselekt.executeQuery();
    1.36 +                while (rsIP.next()) {
    1.37 +                    String ip = rsIP.getString("ip");
    1.38 +                    String domena = prelozIP(ip);
    1.39 +                    psIPupdate.setString(1, domena);
    1.40 +                    psIPupdate.setString(2, ip);
    1.41 +                    psIPupdate.executeUpdate();
    1.42 +                }
    1.43 +                zavri(null, psIPselekt, null);
    1.44 +                zavri(null, psIPupdate, null);
    1.45 +
    1.46 +                /**
    1.47 +                 * Pokud se všechno povedlo, commitujeme, jinak nedochází k žádným změnám.
    1.48 +                 * Dané období se buď vygeneruje úspěšně, nebo vůbec.
    1.49 +                 * Přepokládáme vypnutý autocommit (to zajišťuje aplikační server).
    1.50 +                 */
    1.51                  dbSouhrn.commit();
    1.52              } catch (Exception e) {
    1.53                  log.log(Level.SEVERE, "Chyba při generování souhrnu.", e);