Denní souhr načítáme z databáze.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 14 Feb 2009 13:32:38 +0100
changeset 212bc6c427894d
parent 20 90dc76051e56
child 22 571d37e53ecd
Denní souhr načítáme z databáze.
java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java
java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java
java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml
     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