diff -r 000000000000 -r 9acb74ac7346 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java Fri May 29 03:44:35 2009 +0200 @@ -0,0 +1,100 @@ +package cz.frantovo.sql.vyuka.dao; + +import cz.frantovo.sql.vyuka.dto.Hlaska; +import cz.frantovo.sql.vyuka.dto.Hlaska.Typ; +import cz.frantovo.sql.vyuka.dto.Tabulka; +import cz.frantovo.sql.vyuka.dto.Uzivatel; +import cz.frantovo.sql.vyuka.dto.VysledekSQL; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.logging.Level; + +/** + * Ukládání a načítání uživatelské historie. + * @author fiki + */ +public class HistorieDAO extends VyukaSuperDAO { + + TipyDAO tipy = new TipyDAO(); + + private enum SQL { + + NACTI, + ULOZ + } + + /** + * @param sql uživatelský SQL příkaz k uložení + * @param uzivatel idSezení a IP adresa uživatele + * @return zda se podařilo historii uložit + */ + public boolean ulozPrikaz(String sql, Uzivatel uzivatel) { + Connection db = getSpojeni(DATABAZE.APLIKACE); + if (db == null) { + return false; + } else { + PreparedStatement ps = null; + ResultSet rs = null; + try { + ps = db.prepareStatement(getSQL(SQL.ULOZ)); + ps.setString(1, sql); + ps.setString(2, uzivatel.getIdSezeni()); + ps.setString(3, uzivatel.getIpAdresa()); + ps.executeUpdate(); + return true; + } catch (Exception e) { + log.log(Level.SEVERE, "Chyba při ukládání historie.", e); + return false; + } finally { + zavri(db, ps, rs); + } + } + } + + public VysledekSQL nactiHistorii(Uzivatel uzivatel) { + VysledekSQL v = new VysledekSQL(); + + + Tabulka t = new Tabulka(); + String[] zahlavi = {"Kdy", "SQL příkaz"}; + t.setZahlavi(zahlavi); + + + Connection db = getSpojeni(DATABAZE.APLIKACE); + if (db == null) { + v.getHlasky().add(new Hlaska("Došlo k chybě spojení.", Typ.Chyba)); + } else { + PreparedStatement ps = null; + ResultSet rs = null; + try { + ps = db.prepareStatement(getSQL(SQL.NACTI)); + ps.setString(1, uzivatel.getIdSezeni()); + rs = ps.executeQuery(); + + while (rs.next()) { + Timestamp datum = rs.getTimestamp("datum"); + String sql = rs.getString("sql"); + Object[] hodnoty = {datum, sql}; + t.getHodnoty().add(hodnoty); + } + + if (t.getHodnoty().size() < 1) { + v.getHlasky().add(new Hlaska("Historie SQL příkazů nenalezena.", Typ.Varovani)); + } else { + v.getTabulky().add(t); + } + + } catch (Exception e) { + log.log(Level.SEVERE, "Chyba při ukládání historie.", e); + v.getHlasky().add(new Hlaska("Došlo k chybě dotazu.", Typ.Chyba)); + } finally { + zavri(db, ps, rs); + } + } + + v.getHlasky().add(new Hlaska(tipy.getTip(), Typ.Tip, false)); + return v; + } +}