root/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/VyukaSuperDAO.java @ 16:9acb74ac7346

Revision 16:9acb74ac7346, 1.6 KB (checked in by František Kučera <franta-hg@…>, 15 years ago)

Databázová vrstva: vykonávání příkazů a ukládání a načítání historie.

Line 
1package cz.frantovo.sql.vyuka.dao;
2
3import cz.frantovo.superDAO.SuperDAO;
4import java.sql.Connection;
5import java.sql.SQLException;
6import java.util.logging.Level;
7import javax.naming.InitialContext;
8import javax.naming.NamingException;
9import javax.sql.DataSource;
10
11/**
12 *
13 * @author fiki
14 */
15public 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}
Note: See TracBrowser for help on using the browser.