Databázová vrstva: vykonávání příkazů a ukládání a načítání historie.
1 package cz.frantovo.sql.vyuka.dto;
3 import cz.frantovo.sql.vyuka.Html;
4 import java.util.ArrayList;
5 import java.util.Collection;
8 * Tabulka, která je výsledkem SQL dotazu.
11 public class Tabulka implements HtmlObjekt {
13 private String[] zahlavi;
14 private Collection<Object[]> hodnoty = new ArrayList<Object[]>();
16 public String getHtml() {
18 if (getZahlavi() == null || getHodnoty() == null || getZahlavi().length < 1) {
19 return "<p>Chybná tabulka</p>";
22 StringBuffer html = new StringBuffer();
24 html.append("<table>");
27 html.append("<thead title=\"Chceš setřídit výsledek podle nějakého sloupce? Co takhle ORDER BY sloupec.\">");
29 for (String z : getZahlavi()) {
30 html.append("<td>" + Html.escapuj(z) + "</td>");
33 html.append("</thead>");
36 html.append("<tbody>");
37 for (Object[] hh : getHodnoty()) {
40 html.append(formatujBunku(h));
44 html.append("</tbody>");
46 html.append("</table>");
49 return html.toString();
53 private String formatujBunku(Object o) {
54 /** TODO: podporovat i jiné typy */
55 if (o instanceof Integer) {
56 return "<td class=\"cislo\">" + Html.escapuj(String.valueOf(o)) + "</td>";
58 return "<td>" + Html.escapuj(String.valueOf(o)) + "</td>";
62 public String[] getZahlavi() {
66 public void setZahlavi(String[] zahlavi) {
67 this.zahlavi = zahlavi;
70 public Collection<Object[]> getHodnoty() {