java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/TipyDAO.java
author František Kučera <franta-hg@frantovo.cz>
Wed Feb 08 13:15:23 2012 +0100 (2012-02-08)
changeset 78 3b4abb1ec5a3
parent 16 9acb74ac7346
permissions -rw-r--r--
Limit počtu řádků (10000) a doby provádění SQL dotazu (3 vteřiny) v pískovišti,
nedokonalá ochrana proti DoS útoku (kartézský součin, náročný dotaz).
franta-hg@16
     1
package cz.frantovo.sql.vyuka.dao;
franta-hg@16
     2
franta-hg@29
     3
import java.sql.Connection;
franta-hg@29
     4
import java.sql.PreparedStatement;
franta-hg@29
     5
import java.sql.ResultSet;
franta-hg@29
     6
import java.util.logging.Level;
franta-hg@29
     7
franta-hg@16
     8
/**
franta-hg@29
     9
 * Rady, tipy, odkazy, citáty… pro zobrazování uživatelům.
franta-hg@16
    10
 * @author fiki
franta-hg@16
    11
 */
franta-hg@16
    12
public class TipyDAO extends VyukaSuperDAO {
franta-hg@16
    13
franta-hg@29
    14
    private enum SQL {
franta-hg@29
    15
franta-hg@29
    16
        NAHODNY_TIP
franta-hg@29
    17
    }
franta-hg@29
    18
franta-hg@29
    19
    /**
franta-hg@29
    20
     * @return Náhodný tip načtený z databáze
franta-hg@29
    21
     */
franta-hg@16
    22
    public String getTip() {
franta-hg@29
    23
        Connection db = getSpojeni(DATABAZE.APLIKACE);
franta-hg@29
    24
        if (db == null) {
franta-hg@29
    25
            log.log(Level.SEVERE, "Databáze je null.");
franta-hg@29
    26
            return null;
franta-hg@29
    27
        } else {
franta-hg@29
    28
            PreparedStatement ps = null;
franta-hg@29
    29
            ResultSet rs = null;
franta-hg@29
    30
            try {
franta-hg@29
    31
                ps = db.prepareStatement(getSQL(SQL.NAHODNY_TIP));
franta-hg@29
    32
                rs = ps.executeQuery();
franta-hg@29
    33
                rs.next();
franta-hg@29
    34
                return rs.getString("text");
franta-hg@29
    35
            } catch (Exception e) {
franta-hg@29
    36
                log.log(Level.SEVERE, "Chyba při hledání náhodného tipu.", e);
franta-hg@29
    37
                return null;
franta-hg@29
    38
            } finally {
franta-hg@29
    39
                zavri(db, ps, rs);
franta-hg@29
    40
            }
franta-hg@29
    41
        }
franta-hg@16
    42
    }
franta-hg@16
    43
}