Už to „něco“ dělá – zobrazujeme ukázková data.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri, 29 May 2009 00:36:44 +0200
changeset 1396e711f3ef48
parent 12 1b10a6565e8c
child 14 d08769933940
Už to „něco“ dělá – zobrazujeme ukázková data.
java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Ajax.java
java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java
java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java
java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Uzivatel.java
java/sql-vyuka/web/historie.html
java/sql-vyuka/web/vysledek.html
     1.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Ajax.java	Fri May 29 00:13:11 2009 +0200
     1.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Ajax.java	Fri May 29 00:36:44 2009 +0200
     1.3 @@ -2,6 +2,8 @@
     1.4  
     1.5  import cz.frantovo.sql.vyuka.dto.Hlaska;
     1.6  import cz.frantovo.sql.vyuka.dto.Hlaska.Typ;
     1.7 +import cz.frantovo.sql.vyuka.dto.Tabulka;
     1.8 +import cz.frantovo.sql.vyuka.dto.Uzivatel;
     1.9  import cz.frantovo.sql.vyuka.dto.VysledekSQL;
    1.10  
    1.11  /**
    1.12 @@ -13,13 +15,25 @@
    1.13      /**
    1.14       * @return Historie SQL příkazů daného uživatele.
    1.15       */
    1.16 -    public String getHistorie(String idSezeni) {
    1.17 +    public String getHistorie(Uzivatel uzivatel) {
    1.18          VysledekSQL v = new VysledekSQL();
    1.19          v.getHlasky().add(new Hlaska("Bude vypsána vaše historie", Typ.OK));
    1.20 -        v.getHlasky().add(new Hlaska("idSezení: " + idSezeni, Typ.OK));
    1.21 +        v.getHlasky().add(new Hlaska("idSezení: " + uzivatel.getIdSezeni(), Typ.OK));
    1.22          v.getHlasky().add(new Hlaska("Ale ještě to není hotové.", Typ.Varovani));
    1.23          v.getHlasky().add(new Hlaska("Což je asi chyba.", Typ.Chyba));
    1.24 -        v.getHlasky().add(new Hlaska("Stejně vám něco <a href=\"http://frantovo.cz/blog/\">doporučíme</a>.", Typ.Tip));
    1.25 +        v.getHlasky().add(new Hlaska("Stejně vám něco <a href=\"http://frantovo.cz/blog/\">doporučíme</a>.", Typ.Tip, false));
    1.26 +
    1.27 +
    1.28 +        Tabulka t = new Tabulka();
    1.29 +        String[] zahlavi = {"Kdy", "SQL příkaz"};
    1.30 +        t.setZahlavi(zahlavi);
    1.31 +        for (int i = 1; i < 4; i++) {
    1.32 +            String[] hodnoty = {"Někdy " + i, "SELECT * FROM tabulka WHERE id = " + i};
    1.33 +            t.getHodnoty().add(hodnoty);
    1.34 +        }
    1.35 +        v.getTabulky().add(t);
    1.36 +
    1.37 +
    1.38          return v.getHtml();
    1.39      }
    1.40  
    1.41 @@ -27,14 +41,28 @@
    1.42       * Vykoná zadaný SQL příkaz v databázi.
    1.43       * @return Výsledek dotazu – tabulka, hláška nebo chyba.
    1.44       */
    1.45 -    public String geSQLVysledek(String sql, String idSezeni) {
    1.46 +    public String geSQLVysledek(String sql, Uzivatel uzivatel) {
    1.47          VysledekSQL v = new VysledekSQL();
    1.48          v.getHlasky().add(new Hlaska("Bude vykonán SQL dotaz.", Typ.OK));
    1.49 -        v.getHlasky().add(new Hlaska("idSezení: " + idSezeni, Typ.OK));
    1.50 +        v.getHlasky().add(new Hlaska("idSezení: " + uzivatel.getIdSezeni(), Typ.OK));
    1.51          v.getHlasky().add(new Hlaska("SQL: " + sql, Typ.OK));
    1.52 +        v.getHlasky().add(new Hlaska("IP adresa: " + uzivatel.getIpAdresa(), Typ.OK));
    1.53 +        v.getHlasky().add(new Hlaska("IP adresa a SQL dotaz budou uloženy", Typ.Varovani));
    1.54          v.getHlasky().add(new Hlaska("Ale ještě to není hotové.", Typ.Varovani));
    1.55          v.getHlasky().add(new Hlaska("Což je asi chyba.", Typ.Chyba));
    1.56 -        v.getHlasky().add(new Hlaska("Stejně vám něco <a href=\"http://frantovo.cz/blog/\">doporučíme</a>.", Typ.Tip));
    1.57 +        v.getHlasky().add(new Hlaska("Stejně vám něco <a href=\"http://frantovo.cz/blog/\">doporučíme</a>.", Typ.Tip, false));
    1.58 +
    1.59 +        for (int n = 1; n < 3; n++) {
    1.60 +            Tabulka t = new Tabulka();
    1.61 +            String[] zahlavi = {"Sloupeček 1", "Nějaké číslo"};
    1.62 +            t.setZahlavi(zahlavi);
    1.63 +            for (int i = 1; i < 4; i++) {
    1.64 +                Object[] hodnoty = {"počet " + i, new Integer(i * n)};
    1.65 +                t.getHodnoty().add(hodnoty);
    1.66 +            }
    1.67 +            v.getTabulky().add(t);
    1.68 +        }
    1.69 +
    1.70          return v.getHtml();
    1.71      }
    1.72  }
     2.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java	Fri May 29 00:13:11 2009 +0200
     2.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java	Fri May 29 00:36:44 2009 +0200
     2.3 @@ -1,5 +1,6 @@
     2.4  package cz.frantovo.sql.vyuka.ajax;
     2.5  
     2.6 +import cz.frantovo.sql.vyuka.dto.Uzivatel;
     2.7  import java.io.IOException;
     2.8  import java.io.PrintWriter;
     2.9  import javax.servlet.ServletException;
    2.10 @@ -53,15 +54,15 @@
    2.11  
    2.12  
    2.13              Ajax a = new Ajax();
    2.14 -            String idSezeni = request.getRequestedSessionId();
    2.15  
    2.16 +            Uzivatel uzivatel = new Uzivatel(request.getRequestedSessionId(), request.getRemoteHost());
    2.17  
    2.18              switch (parametrAkce) {
    2.19                  case vykonat:
    2.20 -                    out.println(a.geSQLVysledek(request.getParameter("sql"), idSezeni));
    2.21 +                    out.println(a.geSQLVysledek(request.getParameter("sql"), uzivatel));
    2.22                      break;
    2.23                  case historie:
    2.24 -                    out.println(a.getHistorie(idSezeni));
    2.25 +                    out.println(a.getHistorie(uzivatel));
    2.26                      break;
    2.27                  case test:
    2.28                      out.println("<p>AJAX jede!</p>");
     3.1 --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java	Fri May 29 00:13:11 2009 +0200
     3.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java	Fri May 29 00:36:44 2009 +0200
     3.3 @@ -35,9 +35,11 @@
     3.4  
     3.5              html.append("<tbody>");
     3.6              for (Object[] hh : getHodnoty()) {
     3.7 +                html.append("<tr>");
     3.8                  for (Object h : hh) {
     3.9 -                    html.append(formatujRadek(h));
    3.10 +                    html.append(formatujBunku(h));
    3.11                  }
    3.12 +                html.append("</tr>");
    3.13              }
    3.14              html.append("</tbody>");
    3.15  
    3.16 @@ -48,7 +50,8 @@
    3.17          }
    3.18      }
    3.19  
    3.20 -    private String formatujRadek(Object o) {
    3.21 +    private String formatujBunku(Object o) {
    3.22 +        /** TODO: podporovat i jiné typy */
    3.23          if (o instanceof Integer) {
    3.24              return "<td class=\"cislo\">" + Html.escapuj(String.valueOf(o)) + "</td>";
    3.25          } else {
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Uzivatel.java	Fri May 29 00:36:44 2009 +0200
     4.3 @@ -0,0 +1,32 @@
     4.4 +package cz.frantovo.sql.vyuka.dto;
     4.5 +
     4.6 +/**
     4.7 + * Uživatel u webu.
     4.8 + * @author fiki
     4.9 + */
    4.10 +public class Uzivatel {
    4.11 +
    4.12 +    private String idSezeni;
    4.13 +    private String ipAdresa;
    4.14 +
    4.15 +    public Uzivatel(String idSezeni, String ipAdresa) {
    4.16 +        this.idSezeni = idSezeni;
    4.17 +        this.ipAdresa = ipAdresa;
    4.18 +    }
    4.19 +
    4.20 +    public String getIdSezeni() {
    4.21 +        return idSezeni;
    4.22 +    }
    4.23 +
    4.24 +    public void setIdSezeni(String idSezeni) {
    4.25 +        this.idSezeni = idSezeni;
    4.26 +    }
    4.27 +
    4.28 +    public String getIpAdresa() {
    4.29 +        return ipAdresa;
    4.30 +    }
    4.31 +
    4.32 +    public void setIpAdresa(String ipAdresa) {
    4.33 +        this.ipAdresa = ipAdresa;
    4.34 +    }
    4.35 +}
     5.1 --- a/java/sql-vyuka/web/historie.html	Fri May 29 00:13:11 2009 +0200
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,26 +0,0 @@
     5.4 -<div>
     5.5 -    <table>
     5.6 -        <thead title="Chceš setřídit výsledek podle nějakého sloupce? Co takhle ORDER BY sloupec.">
     5.7 -            <tr>
     5.8 -                <td>Kdy</td>
     5.9 -                <td>SQL příkaz</td>
    5.10 -            </tr>
    5.11 -        </thead>
    5.12 -        <tbody>
    5.13 -            <tr>
    5.14 -                <td>2008-05-24 16:00:08</td>
    5.15 -                <td>SELECT * FROM tabulka WHERE id = 123;</td>
    5.16 -            </tr>
    5.17 -            <tr>
    5.18 -                <td>2008-05-24 15:55:10</td>
    5.19 -                <td>SELECT * FROM tabulka WHERE id = 123 ORDER BY datum DESC;</td>
    5.20 -            </tr>
    5.21 -            <tr>
    5.22 -                <td>2008-05-24 15:51:28</td>
    5.23 -                <td>SELECT * <br/>FROM tabulka <br/>JOIN druha_tabulka USING (email) <br/>WHERE id = 8;</td>
    5.24 -            </tr>
    5.25 -        </tbody>
    5.26 -    </table>
    5.27 -    <p class="vysledekOK">Toto je historie provedených SQL příkazů.</p>
    5.28 -    <p class="vysledekTip">„Nějaký pěkný tip, citát, nebo <a href="http://frantovo.cz/blog/">odkaz</a> na stránku.“</p>
    5.29 -</div>
    5.30 \ No newline at end of file
     6.1 --- a/java/sql-vyuka/web/vysledek.html	Fri May 29 00:13:11 2009 +0200
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,90 +0,0 @@
     6.4 -<div>
     6.5 -    <table>
     6.6 -        <thead title="Chceš setřídit výsledek podle nějakého sloupce? Co takhle ORDER BY sloupec.">
     6.7 -            <tr>
     6.8 -                <td>Sloupeček 1</td>
     6.9 -                <td>Sloupeček 2</td>
    6.10 -                <td>Sloupeček 3</td>
    6.11 -                <td>Sloupeček 4</td>
    6.12 -            </tr>
    6.13 -        </thead>
    6.14 -        <tbody>
    6.15 -            <tr>
    6.16 -                <td>Hodnota 1</td>
    6.17 -                <td>Hodnota 2</td>
    6.18 -                <td>Hodnota 3</td>
    6.19 -                <td class="cislo">1234,56</td>
    6.20 -            </tr>
    6.21 -            <tr>
    6.22 -                <td>Hodnota 1</td>
    6.23 -                <td>Hodnota 2</td>
    6.24 -                <td>Hodnota 3</td>
    6.25 -                <td class="cislo">1234,56</td>
    6.26 -            </tr>
    6.27 -            <tr>
    6.28 -                <td>Hodnota 1</td>
    6.29 -                <td>Hodnota 2</td>
    6.30 -                <td>Hodnota 3</td>
    6.31 -                <td class="cislo">1234,56</td>
    6.32 -            </tr>
    6.33 -            <tr>
    6.34 -                <td>Hodnota 1</td>
    6.35 -                <td>Hodnota 2</td>
    6.36 -                <td>Hodnota 3</td>
    6.37 -                <td class="cislo">1234,56</td>
    6.38 -            </tr>
    6.39 -            <tr>
    6.40 -                <td>Hodnota 1</td>
    6.41 -                <td>Hodnota 2</td>
    6.42 -                <td>Hodnota 3</td>
    6.43 -                <td class="cislo">1234,56</td>
    6.44 -            </tr>
    6.45 -            <tr>
    6.46 -                <td>Hodnota 1</td>
    6.47 -                <td>Hodnota 2</td>
    6.48 -                <td>Hodnota 3</td>
    6.49 -                <td class="cislo">1234,56</td>
    6.50 -            </tr>
    6.51 -            <tr>
    6.52 -                <td>Hodnota 1</td>
    6.53 -                <td>Hodnota 2</td>
    6.54 -                <td>Hodnota 3</td>
    6.55 -                <td class="cislo">1234,56</td>
    6.56 -            </tr>
    6.57 -            <tr>
    6.58 -                <td>Hodnota 1</td>
    6.59 -                <td>Hodnota 2</td>
    6.60 -                <td>Hodnota 3</td>
    6.61 -                <td class="cislo">1234,56</td>
    6.62 -            </tr>
    6.63 -            <tr>
    6.64 -                <td>Hodnota 1</td>
    6.65 -                <td>Hodnota 2</td>
    6.66 -                <td>Hodnota 3</td>
    6.67 -                <td class="cislo">1234,56</td>
    6.68 -            </tr>
    6.69 -            <tr>
    6.70 -                <td>Hodnota 1</td>
    6.71 -                <td>Hodnota 2</td>
    6.72 -                <td>Hodnota 3</td>
    6.73 -                <td class="cislo">1234,56</td>
    6.74 -            </tr>
    6.75 -            <tr>
    6.76 -                <td>Hodnota 1</td>
    6.77 -                <td>Hodnota 2</td>
    6.78 -                <td>Hodnota 3</td>
    6.79 -                <td class="cislo">1234,56</td>
    6.80 -            </tr>
    6.81 -            <tr>
    6.82 -                <td>Hodnota 1</td>
    6.83 -                <td>Hodnota 2</td>
    6.84 -                <td>Hodnota 3</td>
    6.85 -                <td class="cislo">1234,56</td>
    6.86 -            </tr>
    6.87 -        </tbody>
    6.88 -    </table>
    6.89 -    <p class="vysledekOK">Ahoj. Právě jsi zmáčknul tlačítko „Vykonat SQL“ :-)</p>
    6.90 -    <p class="vysledekVarovani">Tohle se zobrazí při varování.</p>
    6.91 -    <p class="vysledekChyba">A tohle, když se něco nepovede.</p>
    6.92 -    <p class="vysledekTip">„Nějaký pěkný tip, citát, nebo <a href="http://frantovo.cz/blog/">odkaz</a> na stránku.“</p>
    6.93 -</div>
    6.94 \ No newline at end of file