root/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java @ 24:dceaaefb1946

Revision 24:dceaaefb1946, 3.1 KB (checked in by František Kučera <franta-hg@…>, 15 years ago)

Přechod ze servletu na JSP – přidání JSPX.

Line 
1package cz.frantovo.sql.vyuka.dao;
2
3import cz.frantovo.sql.vyuka.dto.Hlaska;
4import cz.frantovo.sql.vyuka.dto.Hlaska.Typ;
5import cz.frantovo.sql.vyuka.dto.Tabulka;
6import cz.frantovo.sql.vyuka.dto.Uzivatel;
7import cz.frantovo.sql.vyuka.dto.VysledekSQL;
8import java.sql.Connection;
9import java.sql.PreparedStatement;
10import java.sql.ResultSet;
11import java.sql.Timestamp;
12import java.util.logging.Level;
13
14/**
15 * Ukládání a načítání uživatelské historie.
16 * @author fiki
17 */
18public class HistorieDAO extends VyukaSuperDAO {
19
20    TipyDAO tipy = new TipyDAO();
21
22    private enum SQL {
23
24        NACTI,
25        ULOZ
26    }
27
28    /**
29     * @param sql uživatelský SQL příkaz k uložení
30     * @param uzivatel idSezení a IP adresa uživatele
31     * @return zda se podařilo historii uložit
32     */
33    public boolean ulozPrikaz(String sql, Uzivatel uzivatel) {
34        Connection db = getSpojeni(DATABAZE.APLIKACE);
35        if (db == null) {
36            return false;
37        } else {
38            PreparedStatement ps = null;
39            ResultSet rs = null;
40            try {
41                ps = db.prepareStatement(getSQL(SQL.ULOZ));
42                ps.setString(1, sql);
43                ps.setString(2, uzivatel.getIdSezeni());
44                ps.setString(3, uzivatel.getIpAdresa());
45                ps.executeUpdate();
46                return true;
47            } catch (Exception e) {
48                log.log(Level.SEVERE, "Chyba při ukládání historie.", e);
49                return false;
50            } finally {
51                zavri(db, ps, rs);
52            }
53        }
54    }
55
56    public VysledekSQL nactiHistorii(Uzivatel uzivatel) {
57        VysledekSQL v = new VysledekSQL();
58
59
60        Tabulka t = new Tabulka();
61        String[] zahlavi = {"Kdy", "SQL příkaz"};
62        t.setZahlavi(zahlavi);
63        /** TODO: lokalizace */
64        t.setZahlaviTip("TODO: Překlad");
65
66        Connection db = getSpojeni(DATABAZE.APLIKACE);
67        if (db == null) {
68            v.getHlasky().add(new Hlaska("Došlo k chybě spojení.", Typ.Chyba));
69        } else {
70            PreparedStatement ps = null;
71            ResultSet rs = null;
72            try {
73                ps = db.prepareStatement(getSQL(SQL.NACTI));
74                ps.setString(1, uzivatel.getIdSezeni());
75                rs = ps.executeQuery();
76
77                while (rs.next()) {
78                    Timestamp datum = rs.getTimestamp("datum");
79                    String sql = rs.getString("sql");
80                    Object[] hodnoty = {datum, sql};
81                    t.getHodnoty().add(hodnoty);
82                }
83
84                if (t.getHodnoty().size() < 1) {
85                    v.getHlasky().add(new Hlaska("Historie SQL příkazů nenalezena.", Typ.Varovani));
86                } else {
87                    v.getTabulky().add(t);
88                }
89
90            } catch (Exception e) {
91                log.log(Level.SEVERE, "Chyba při ukládání historie.", e);
92                v.getHlasky().add(new Hlaska("Došlo k chybě dotazu.", Typ.Chyba));
93            } finally {
94                zavri(db, ps, rs);
95            }
96        }
97
98        v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false));
99        return v;
100    }
101}
Note: See TracBrowser for help on using the browser.