1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java Fri May 29 03:44:35 2009 +0200
1.3 @@ -0,0 +1,100 @@
1.4 +package cz.frantovo.sql.vyuka.dao;
1.5 +
1.6 +import cz.frantovo.sql.vyuka.dto.Hlaska;
1.7 +import cz.frantovo.sql.vyuka.dto.Hlaska.Typ;
1.8 +import cz.frantovo.sql.vyuka.dto.Tabulka;
1.9 +import cz.frantovo.sql.vyuka.dto.Uzivatel;
1.10 +import cz.frantovo.sql.vyuka.dto.VysledekSQL;
1.11 +import java.sql.Connection;
1.12 +import java.sql.PreparedStatement;
1.13 +import java.sql.ResultSet;
1.14 +import java.sql.Timestamp;
1.15 +import java.util.logging.Level;
1.16 +
1.17 +/**
1.18 + * Ukládání a načítání uživatelské historie.
1.19 + * @author fiki
1.20 + */
1.21 +public class HistorieDAO extends VyukaSuperDAO {
1.22 +
1.23 + TipyDAO tipy = new TipyDAO();
1.24 +
1.25 + private enum SQL {
1.26 +
1.27 + NACTI,
1.28 + ULOZ
1.29 + }
1.30 +
1.31 + /**
1.32 + * @param sql uživatelský SQL příkaz k uložení
1.33 + * @param uzivatel idSezení a IP adresa uživatele
1.34 + * @return zda se podařilo historii uložit
1.35 + */
1.36 + public boolean ulozPrikaz(String sql, Uzivatel uzivatel) {
1.37 + Connection db = getSpojeni(DATABAZE.APLIKACE);
1.38 + if (db == null) {
1.39 + return false;
1.40 + } else {
1.41 + PreparedStatement ps = null;
1.42 + ResultSet rs = null;
1.43 + try {
1.44 + ps = db.prepareStatement(getSQL(SQL.ULOZ));
1.45 + ps.setString(1, sql);
1.46 + ps.setString(2, uzivatel.getIdSezeni());
1.47 + ps.setString(3, uzivatel.getIpAdresa());
1.48 + ps.executeUpdate();
1.49 + return true;
1.50 + } catch (Exception e) {
1.51 + log.log(Level.SEVERE, "Chyba při ukládání historie.", e);
1.52 + return false;
1.53 + } finally {
1.54 + zavri(db, ps, rs);
1.55 + }
1.56 + }
1.57 + }
1.58 +
1.59 + public VysledekSQL nactiHistorii(Uzivatel uzivatel) {
1.60 + VysledekSQL v = new VysledekSQL();
1.61 +
1.62 +
1.63 + Tabulka t = new Tabulka();
1.64 + String[] zahlavi = {"Kdy", "SQL příkaz"};
1.65 + t.setZahlavi(zahlavi);
1.66 +
1.67 +
1.68 + Connection db = getSpojeni(DATABAZE.APLIKACE);
1.69 + if (db == null) {
1.70 + v.getHlasky().add(new Hlaska("Došlo k chybě spojení.", Typ.Chyba));
1.71 + } else {
1.72 + PreparedStatement ps = null;
1.73 + ResultSet rs = null;
1.74 + try {
1.75 + ps = db.prepareStatement(getSQL(SQL.NACTI));
1.76 + ps.setString(1, uzivatel.getIdSezeni());
1.77 + rs = ps.executeQuery();
1.78 +
1.79 + while (rs.next()) {
1.80 + Timestamp datum = rs.getTimestamp("datum");
1.81 + String sql = rs.getString("sql");
1.82 + Object[] hodnoty = {datum, sql};
1.83 + t.getHodnoty().add(hodnoty);
1.84 + }
1.85 +
1.86 + if (t.getHodnoty().size() < 1) {
1.87 + v.getHlasky().add(new Hlaska("Historie SQL příkazů nenalezena.", Typ.Varovani));
1.88 + } else {
1.89 + v.getTabulky().add(t);
1.90 + }
1.91 +
1.92 + } catch (Exception e) {
1.93 + log.log(Level.SEVERE, "Chyba při ukládání historie.", e);
1.94 + v.getHlasky().add(new Hlaska("Došlo k chybě dotazu.", Typ.Chyba));
1.95 + } finally {
1.96 + zavri(db, ps, rs);
1.97 + }
1.98 + }
1.99 +
1.100 + v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false));
1.101 + return v;
1.102 + }
1.103 +}