java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java
1 package cz.frantovo.hrisniciSpameri.dao;
3 import cz.frantovo.hrisniciSpameri.dto.Cil;
4 import java.sql.Connection;
6 import java.sql.PreparedStatement;
7 import java.sql.ResultSet;
8 import java.util.Collection;
9 import java.util.logging.Level;
15 public class GeneratorSouhrnuDAO extends HrisniciSuperDAO {
23 * Vygeneruje souhrn pro daný cíl a datum a uloží ho do databáze
24 * @param cil cíl, pro který generujeme souhrn
25 * @param den den, pro který souhrn generujeme.
27 private void generujSouhrn(Cil cil, Date den) {
28 Connection dbZdroj = getSpojeni(cil.getDatabaze());
29 Connection dbSouhrn = getSpojeni(null);
31 if (dbZdroj == null || dbSouhrn == null) {
32 /** TODO: Chyba spojení */
34 PreparedStatement ps = null;
37 ps = dbZdroj.prepareStatement(cil.getSelekt());
39 rs = ps.executeQuery();
40 PreparedStatement psSouhrn = dbSouhrn.prepareStatement(getSQL(SQL.VLOZ_SOUHRN));
43 * Souhrn bychom mohli vkládat pomocí SouhrnDAO,
44 * ale z výkonnostních důvodů to budeme dělat tady
45 * (jedno spojení a jeden předpřipravený příkaz).
47 psSouhrn.setDate(1, den);
48 psSouhrn.setString(2, rs.getString("ip"));
49 psSouhrn.setString(3, "TODO: přeložit " + rs.getString("ip"));
50 psSouhrn.setInt(4, rs.getInt("pocet"));
51 psSouhrn.setInt(5, cil.getId());
52 psSouhrn.executeUpdate();
54 zavri(null, psSouhrn, null);
56 } catch (Exception e) {
57 log.log(Level.SEVERE, "Chyba při generování souhrnu.", e);
59 zavri(dbZdroj, ps, rs);
60 zavri(dbSouhrn, null, null);
66 * Vygeneruje denní souhrny pro všechny cíle.
67 * @param den den, pro který souhrny generujeme.
69 public void generujSouhrny(Date den) {
70 Collection<Cil> cile = new CilDAO().getCile();
72 generujSouhrn(c, den);