1 package cz.frantovo.hrisniciSpameri.dao;
3 import cz.frantovo.hrisniciSpameri.dto.Cil;
4 import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa;
5 import cz.frantovo.hrisniciSpameri.dto.Soucet;
6 import cz.frantovo.hrisniciSpameri.dto.Souhrn;
7 import java.sql.Connection;
9 import java.sql.PreparedStatement;
10 import java.sql.ResultSet;
11 import java.util.ArrayList;
12 import java.util.Collection;
13 import java.util.HashMap;
14 import java.util.logging.Level;
20 public class SouhrnDAO extends HrisniciSuperDAO {
31 * Získá z databáze souhrn útoků. Buď pro konkrétní den nebo pro dané období.
32 * @param zacatek začátek období nebo konkrétní den
33 * @param konec konec období nebo null (pokud nás zajímá konkrétní den)
34 * @param cil id cíle nebo nula, pokud chceme všechny cíle
35 * @return seznam útoků
37 public Collection<Souhrn> getSouhrn(Date zacatek, Date konec, int cil) {
38 Collection<Souhrn> souhrn = new ArrayList<Souhrn>();
40 Connection db = getSpojeni(null);
44 PreparedStatement ps = null;
52 ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN));
53 ps.setDate(1, zacatek);
56 ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN_CIL));
57 ps.setDate(1, zacatek);
61 rs = ps.executeQuery();
63 Souhrn s = new Souhrn();
64 s.setAdresa(new SitovaAdresa(rs.getString("ip"), rs.getString("domena")));
65 s.setDen(rs.getDate("den"));
66 s.setPocet(rs.getInt("pocet"));
69 c.setId(rs.getInt("id"));
70 c.setNazev(rs.getString("nazev"));
71 c.setUrl(rs.getString("url"));
72 c.setSelekt(rs.getString("selekt"));
73 c.setDatabaze(rs.getString("databaze"));
78 } catch (Exception e) {
79 log.log(Level.SEVERE, "Chyba při získávání souhrnu z databáze", e);
89 * @param zacatek začátek období nebo konkrétní den
90 * @param konec konec období nebo null (pokud nás zajímá konkrétní den – což nás tady většinou nezajímá)
91 * @param cil id cíle nebo nula, pokud chceme všechny cíle
92 * @return součty útoků za jednotlivé dny, seskupené podle cílů
94 public HashMap<Cil, Collection<Soucet>> getSoucty(Date zacatek, Date konec, int cil) {
95 HashMap<Cil, Collection<Soucet>> soucty = new HashMap<Cil, Collection<Soucet>>();
97 Connection db = getSpojeni(null);
101 PreparedStatement ps = null;
109 ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY));
110 ps.setDate(1, zacatek);
111 ps.setDate(2, konec);
113 ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY_CIL));
114 ps.setDate(1, zacatek);
115 ps.setDate(2, konec);
118 rs = ps.executeQuery();
120 Soucet s = new Soucet();
121 s.setDen(rs.getDate("den"));
122 s.setPocet(rs.getInt("pocet"));
125 c.setId(rs.getInt("id"));
126 c.setNazev(rs.getString("nazev"));
127 c.setUrl(rs.getString("url"));
128 c.setSelekt(rs.getString("selekt"));
129 c.setDatabaze(rs.getString("databaze"));
132 if (soucty.get(c) == null) {
133 soucty.put(c, new ArrayList<Soucet>());
136 soucty.get(c).add(s);
138 } catch (Exception e) {
139 log.log(Level.SEVERE, "Chyba při získávání součtů z databáze", e);