java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/VyukaSuperDAO.java
author František Kučera <franta-hg@frantovo.cz>
Fri May 29 03:44:35 2009 +0200 (2009-05-29)
changeset 16 9acb74ac7346
child 33 36359b154a6a
permissions -rw-r--r--
Databázová vrstva: vykonávání příkazů a ukládání a načítání historie.
     1 package cz.frantovo.sql.vyuka.dao;
     2 
     3 import cz.frantovo.superDAO.SuperDAO;
     4 import java.sql.Connection;
     5 import java.sql.SQLException;
     6 import java.util.logging.Level;
     7 import javax.naming.InitialContext;
     8 import javax.naming.NamingException;
     9 import javax.sql.DataSource;
    10 
    11 /**
    12  *
    13  * @author fiki
    14  */
    15 public class VyukaSuperDAO extends SuperDAO {
    16 
    17     protected InitialContext kontext = null;
    18 
    19     protected enum DATABAZE {
    20 
    21         /** Databáze aplikace – historie, nastavení. */
    22         APLIKACE,
    23         /** Databáze, na které se spouštějí příkazy uživatelů. */
    24         PISKOVISTE
    25     }
    26 
    27     public VyukaSuperDAO() {
    28         try {
    29             kontext = new InitialContext();
    30         } catch (NamingException ex) {
    31             log.log(Level.SEVERE, "Chyba při inicializaci kontextu", ex);
    32         }
    33     }
    34 
    35     /**
    36      * @param databaze Která databáze (aplikace = historie a nastavení | pískoviště = příkazy uživatele)
    37      * @return Databázové spojení
    38      */
    39     protected Connection getSpojeni(DATABAZE databaze) {
    40         if (databaze == null) {
    41             databaze = DATABAZE.PISKOVISTE;
    42         }
    43         log.log(Level.SEVERE, "DATABAZE:" + String.valueOf(databaze));
    44         String jndi = orizniJNDI(getVlastnost(databaze, VyukaSuperDAO.class));
    45         DataSource zdroj = null;
    46         try {
    47             zdroj = (DataSource) kontext.lookup(jndi);
    48             return zdroj.getConnection();
    49         } catch (NamingException ex) {
    50             log.log(Level.SEVERE, "getSpojeni: lookup", ex);
    51             return null;
    52         } catch (SQLException ex) {
    53             log.log(Level.SEVERE, "getSpojeni: sql", ex);
    54             return null;
    55         }
    56     }
    57 }