java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PruvodceDAO.java
author František Kučera <franta-hg@frantovo.cz>
Wed, 08 Feb 2012 12:44:51 +0100
changeset 77 fdeb54809e23
parent 37 e32867db5487
permissions -rw-r--r--
odsazení
franta-hg@37
     1
package cz.frantovo.sql.vyuka.dao;
franta-hg@37
     2
franta-hg@37
     3
import cz.frantovo.sql.vyuka.dto.Pruvodce;
franta-hg@37
     4
import java.sql.Connection;
franta-hg@37
     5
import java.sql.PreparedStatement;
franta-hg@37
     6
import java.sql.ResultSet;
franta-hg@37
     7
import java.util.logging.Level;
franta-hg@37
     8
franta-hg@37
     9
/**
franta-hg@37
    10
 * Načítá průvodce (nápovědu) z databáze.
franta-hg@37
    11
 * @author fiki
franta-hg@37
    12
 */
franta-hg@37
    13
public class PruvodceDAO extends VyukaSuperDAO {
franta-hg@37
    14
franta-hg@37
    15
    private enum SQL {
franta-hg@37
    16
franta-hg@37
    17
        PODLE_KODU,
franta-hg@37
    18
        PODLE_ID,
franta-hg@37
    19
        PODLE_ID_PREDCHOZI,
franta-hg@37
    20
        PODLE_ID_NASLEDUJICI
franta-hg@37
    21
    }
franta-hg@37
    22
franta-hg@37
    23
    public Pruvodce getPruvodce(long id) {
franta-hg@37
    24
        return getPruvodce(getSQL(SQL.PODLE_ID), id);
franta-hg@37
    25
    }
franta-hg@37
    26
franta-hg@37
    27
    public Pruvodce getPruvodce(String kod) {
franta-hg@37
    28
        return getPruvodce(getSQL(SQL.PODLE_KODU), kod);
franta-hg@37
    29
    }
franta-hg@37
    30
franta-hg@37
    31
    public Pruvodce getPruvodcePredchozi(long id) {
franta-hg@37
    32
        return getPruvodce(getSQL(SQL.PODLE_ID_PREDCHOZI), id);
franta-hg@37
    33
    }
franta-hg@37
    34
franta-hg@37
    35
    public Pruvodce getPruvodceNasledujici(long id) {
franta-hg@37
    36
        return getPruvodce(getSQL(SQL.PODLE_ID_NASLEDUJICI), id);
franta-hg@37
    37
    }
franta-hg@37
    38
franta-hg@37
    39
    private Pruvodce getPruvodce(String selekt, Object... parametry) {
franta-hg@37
    40
        Connection db = getSpojeni(DATABAZE.APLIKACE);
franta-hg@37
    41
        if (db == null) {
franta-hg@37
    42
            log.log(Level.SEVERE, "Databáze je null.");
franta-hg@37
    43
            return null;
franta-hg@37
    44
        } else {
franta-hg@37
    45
            PreparedStatement ps = null;
franta-hg@37
    46
            ResultSet rs = null;
franta-hg@37
    47
            try {
franta-hg@37
    48
                ps = db.prepareStatement(selekt);
franta-hg@37
    49
                for (int i = 0; i < parametry.length; i++) {
franta-hg@37
    50
                    ps.setObject(i + 1, parametry[i]);
franta-hg@37
    51
                }
franta-hg@37
    52
                rs = ps.executeQuery();
franta-hg@37
    53
                if (rs.next()) {
franta-hg@37
    54
                    Pruvodce p = new Pruvodce();
franta-hg@37
    55
                    p.setId(rs.getLong("id"));
franta-hg@37
    56
                    p.setKod(rs.getString("kod"));
franta-hg@37
    57
                    p.setNadpis(rs.getString("nadpis"));
franta-hg@37
    58
                    p.setObsah(rs.getString("obsah"));
franta-hg@37
    59
                    return p;
franta-hg@37
    60
                } else {
franta-hg@37
    61
                    return null;
franta-hg@37
    62
                }
franta-hg@37
    63
            } catch (Exception e) {
franta-hg@37
    64
                log.log(Level.SEVERE, "Chyba při hledání průvodce.", e);
franta-hg@37
    65
                return null;
franta-hg@37
    66
            } finally {
franta-hg@37
    67
                zavri(db, ps, rs);
franta-hg@37
    68
            }
franta-hg@37
    69
        }
franta-hg@37
    70
    }
franta-hg@37
    71
}