java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java
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);