diff -r 000000000000 -r 9acb74ac7346 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PiskovisteDAO.java Fri May 29 03:44:35 2009 +0200 @@ -0,0 +1,91 @@ +package cz.frantovo.sql.vyuka.dao; + +import cz.frantovo.sql.vyuka.dao.VyukaSuperDAO.DATABAZE; +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.SQLException; +import java.util.logging.Level; + +/** + * Pro spouštění uživatelových příkazů. + * @author fiki + */ +public class PiskovisteDAO extends VyukaSuperDAO { + + TipyDAO tipy = new TipyDAO(); + HistorieDAO historie = new HistorieDAO(); + + public VysledekSQL vykonejSQL(String sql, Uzivatel uzivatel) { + VysledekSQL v = new VysledekSQL(); + if (historie.ulozPrikaz(sql, uzivatel)) { + + + + + + + Tabulka t = new Tabulka(); + + + + Connection db = getSpojeni(DATABAZE.PISKOVISTE); + 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(sql); + rs = ps.executeQuery(); + + int pocetSloupecku = rs.getMetaData().getColumnCount(); + String[] zahlavi = new String[pocetSloupecku]; + t.setZahlavi(zahlavi); + for (int i = 0; i < pocetSloupecku; i++) { + zahlavi[i] = rs.getMetaData().getColumnName(i + 1); + } + + while (rs.next()) { + Object[] hodnoty = new Object[pocetSloupecku]; + for (int i = 0; i < pocetSloupecku; i++) { + hodnoty[i] = rs.getObject(i + 1); + } + t.getHodnoty().add(hodnoty); + } + + if (t.getHodnoty().size() > 0 && pocetSloupecku > 0) { + + v.getTabulky().add(t); + } else { + v.getHlasky().add(new Hlaska("SQL příkaz byl proveden.", Typ.OK)); + } + + } catch (SQLException e) { + log.log(Level.SEVERE, "SQL chyba při vykonávání uživatelského dotazu.", e); + v.getHlasky().add(new Hlaska("Chybné SQL: " + e.getMessage(), Typ.Chyba)); + } catch (Exception e) { + log.log(Level.SEVERE, "Chyba při vykonávání uživatelského dotazu.", 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)); + + + + + + } else { + v.getHlasky().add(new Hlaska("Došlo k chybě historie.", Typ.Chyba)); + } + return v; + } +}