Už to „něco“ dělá – zobrazujeme ukázková data.
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