Denní souhr načítáme z databáze.
1.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java Fri Feb 13 00:26:59 2009 +0100
1.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java Sat Feb 14 13:32:38 2009 +0100
1.3 @@ -1,6 +1,7 @@
1.4 package cz.frantovo.hrisniciSpameri;
1.5
1.6 import cz.frantovo.hrisniciSpameri.dao.CilDAO;
1.7 +import cz.frantovo.hrisniciSpameri.dao.SouhrnDAO;
1.8 import cz.frantovo.hrisniciSpameri.dto.Cil;
1.9 import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa;
1.10 import cz.frantovo.hrisniciSpameri.dto.Souhrn;
1.11 @@ -95,13 +96,12 @@
1.12 }
1.13
1.14 public Collection<Souhrn> getSouhrn() {
1.15 - Collection<Souhrn> souhrn = new ArrayList<Souhrn>();
1.16 + Collection<Souhrn> souhrn = new SouhrnDAO().getSouhrn(den, null, cil);
1.17
1.18 - Cil c = new Cil(1, "Frantovo.cz", "http://frantovo.cz/blog/", null, null);
1.19 -
1.20 - for (int i = 1; i < 11; i++) {
1.21 - Souhrn s = new Souhrn(getVychoziDen(), new SitovaAdresa("10.0.0.8", i + ".frantovo.cz"), 100 + i, c);
1.22 - souhrn.add(s);
1.23 + /** ne všechno musíme posílat do JSP vrstvy */
1.24 + for (Souhrn s : souhrn) {
1.25 + s.getCil().setDatabaze(null);
1.26 + s.getCil().setSelekt(null);
1.27 }
1.28
1.29 return souhrn;
2.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Fri Feb 13 00:26:59 2009 +0100
2.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sat Feb 14 13:32:38 2009 +0100
2.3 @@ -1,9 +1,94 @@
2.4 package cz.frantovo.hrisniciSpameri.dao;
2.5
2.6 +import cz.frantovo.hrisniciSpameri.dto.Cil;
2.7 +import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa;
2.8 +import cz.frantovo.hrisniciSpameri.dto.Souhrn;
2.9 +import java.sql.Connection;
2.10 +import java.sql.Date;
2.11 +import java.sql.PreparedStatement;
2.12 +import java.sql.ResultSet;
2.13 +import java.util.ArrayList;
2.14 +import java.util.Collection;
2.15 +import java.util.logging.Level;
2.16 +
2.17 /**
2.18 *
2.19 * @author fiki
2.20 */
2.21 public class SouhrnDAO extends HrisniciSuperDAO {
2.22 -
2.23 +
2.24 + private enum SQL {
2.25 +
2.26 + DENNI_SOUHRN,
2.27 + DENNI_SOUHRN_CIL,
2.28 + SOUHRN_ZA_OBDOBI,
2.29 + SOUHRN_ZA_OBDOBI_CIL
2.30 + }
2.31 +
2.32 + /**
2.33 + * Získá z databáze souhrn útoků. Buď pro konkrétní den nebo pro dané období.
2.34 + * @param zacatek začátek období nebo konkrétní den
2.35 + * @param konec konec období nebo null (pokud nás zajímá konkrétní den)
2.36 + * @param cil id cíle nebo nula, pokud chceme všechny cíle
2.37 + * @return seznam útoků
2.38 + */
2.39 + public Collection<Souhrn> getSouhrn(Date zacatek, Date konec, int cil) {
2.40 + Collection<Souhrn> souhrn = new ArrayList<Souhrn>();
2.41 +
2.42 + Connection db = getSpojeni(null);
2.43 + if (db == null) {
2.44 + return null;
2.45 + } else {
2.46 + PreparedStatement ps = null;
2.47 + ResultSet rs = null;
2.48 + try {
2.49 + if (konec == null) {
2.50 + if (cil == 0) {
2.51 + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN));
2.52 + ps.setDate(1, zacatek);
2.53 + } else {
2.54 + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN_CIL));
2.55 + ps.setDate(1, zacatek);
2.56 + ps.setInt(2, cil);
2.57 + }
2.58 + } else {
2.59 + if (cil == 0) {
2.60 + ps = db.prepareStatement(getSQL(SQL.SOUHRN_ZA_OBDOBI));
2.61 + ps.setDate(1, zacatek);
2.62 + ps.setDate(2, konec);
2.63 + } else {
2.64 + ps = db.prepareStatement(getSQL(SQL.SOUHRN_ZA_OBDOBI_CIL));
2.65 + ps.setDate(1, zacatek);
2.66 + ps.setDate(2, konec);
2.67 + ps.setInt(3, cil);
2.68 + }
2.69 + }
2.70 +
2.71 +
2.72 + rs = ps.executeQuery();
2.73 + while (rs.next()) {
2.74 + Souhrn s = new Souhrn();
2.75 + s.setAdresa(new SitovaAdresa(rs.getString("ip"), rs.getString("domena")));
2.76 + s.setDen(rs.getDate("den"));
2.77 + s.setPocet(rs.getInt("pocet"));
2.78 +
2.79 + Cil c = new Cil();
2.80 + c.setId(rs.getInt("id"));
2.81 + c.setNazev(rs.getString("nazev"));
2.82 + c.setUrl(rs.getString("url"));
2.83 + c.setSelekt(rs.getString("selekt"));
2.84 + c.setDatabaze(rs.getString("databaze"));
2.85 + s.setCil(c);
2.86 +
2.87 + souhrn.add(s);
2.88 + }
2.89 + } catch (Exception e) {
2.90 + log.log(Level.SEVERE, "Chyba při získávání souhrnu z databáze", e);
2.91 + } finally {
2.92 + zavri(db, ps, rs);
2.93 + }
2.94 + }
2.95 +
2.96 + return souhrn;
2.97 + }
2.98 }
3.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml Fri Feb 13 00:26:59 2009 +0100
3.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml Sat Feb 14 13:32:38 2009 +0100
3.3 @@ -1,9 +1,43 @@
3.4 <?xml version="1.0" encoding="UTF-8"?>
3.5 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
3.6 <properties>
3.7 - <entry key="AHOJ">
3.8 + <entry key="DENNI_SOUHRN">
3.9 <![CDATA[
3.10 - Tak co, jak to jde? ;-)
3.11 + SELECT *
3.12 + FROM souhrn
3.13 + JOIN cil ON (cil.id = souhrn.cil)
3.14 + WHERE den = ?
3.15 + ]]>
3.16 + </entry>
3.17 + <entry key="DENNI_SOUHRN_CIL">
3.18 + <![CDATA[
3.19 + SELECT *
3.20 + FROM souhrn
3.21 + JOIN cil ON (cil.id = souhrn.cil)
3.22 + WHERE den = ?
3.23 + AND cil = ?
3.24 + ]]>
3.25 + </entry>
3.26 + <entry key="SOUHRN_ZA_OBDOBI">
3.27 + <![CDATA[
3.28 + SELECT *
3.29 + FROM souhrn
3.30 + JOIN cil ON (cil.id = souhrn.cil)
3.31 + WHERE den = ?
3.32 +
3.33 + TODO: dopsat
3.34 +
3.35 + ]]>
3.36 + </entry>
3.37 + <entry key="SOUHRN_ZA_OBDOBI_CIL">
3.38 + <![CDATA[
3.39 + SELECT *
3.40 + FROM souhrn
3.41 + JOIN cil ON (cil.id = souhrn.cil)
3.42 + WHERE den = ?
3.43 +
3.44 + TODO: dopsat
3.45 +
3.46 ]]>
3.47 </entry>
3.48 </properties>
3.49 \ No newline at end of file