diff -r 0ffc8c1b2b9c -r fd29fd5a8e29 java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sun Feb 15 22:24:37 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sun Mar 01 13:04:10 2009 +0100 @@ -2,6 +2,7 @@ import cz.frantovo.hrisniciSpameri.dto.Cil; import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa; +import cz.frantovo.hrisniciSpameri.dto.Soucet; import cz.frantovo.hrisniciSpameri.dto.Souhrn; import java.sql.Connection; import java.sql.Date; @@ -9,6 +10,7 @@ import java.sql.ResultSet; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.logging.Level; /** @@ -21,8 +23,9 @@ DENNI_SOUHRN, DENNI_SOUHRN_CIL, + DENNI_SOUCTY, + DENNI_SOUCTY_CIL } - private static final long DEN = 1000 * 60 * 60 * 24; /** * Získá z databáze souhrn útoků. Buď pro konkrétní den nebo pro dané období. @@ -81,4 +84,63 @@ return souhrn; } + + /** + * @param zacatek začátek období nebo konkrétní den + * @param konec konec období nebo null (pokud nás zajímá konkrétní den – což nás tady většinou nezajímá) + * @param cil id cíle nebo nula, pokud chceme všechny cíle + * @return součty útoků za jednotlivé dny, seskupené podle cílů + */ + public HashMap> getSoucty(Date zacatek, Date konec, int cil) { + HashMap> soucty = new HashMap>(); + + Connection db = getSpojeni(null); + if (db == null) { + return null; + } else { + PreparedStatement ps = null; + ResultSet rs = null; + try { + if (konec == null) { + konec = zacatek; + } + + if (cil == 0) { + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY)); + ps.setDate(1, zacatek); + ps.setDate(2, konec); + } else { + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY_CIL)); + ps.setDate(1, zacatek); + ps.setDate(2, konec); + ps.setInt(3, cil); + } + rs = ps.executeQuery(); + while (rs.next()) { + Soucet s = new Soucet(); + s.setDen(rs.getDate("den")); + s.setPocet(rs.getInt("pocet")); + + Cil c = new Cil(); + c.setId(rs.getInt("id")); + c.setNazev(rs.getString("nazev")); + c.setUrl(rs.getString("url")); + c.setSelekt(rs.getString("selekt")); + c.setDatabaze(rs.getString("databaze")); + s.setCil(c); + + if (soucty.get(c) == null) { + soucty.put(c, new ArrayList()); + } + + soucty.get(c).add(s); + } + } catch (Exception e) { + log.log(Level.SEVERE, "Chyba při získávání součtů z databáze", e); + } finally { + zavri(db, ps, rs); + } + } + return soucty; + } } \ No newline at end of file