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