root/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/VyukaSuperDAO.java @ 86:a51bbc91a4cb

Revision 86:a51bbc91a4cb, 2.0 KB (checked in by František Kučera <franta-hg@…>, 3 years ago)

zprovoznění v aplikačním serveru Tomcat / TomEE

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.Context;
8import javax.naming.InitialContext;
9import javax.naming.NamingException;
10import javax.sql.DataSource;
11
12/**
13 *
14 * @author fiki
15 */
16public class VyukaSuperDAO extends SuperDAO {
17
18    protected Context kontext = null;
19
20    protected enum DATABAZE {
21
22        /** Databáze aplikace – historie, nastavení. */
23        APLIKACE,
24        /** Databáze, na které se spouštějí příkazy uživatelů. */
25        PISKOVISTE
26    }
27
28    public VyukaSuperDAO() {
29        try {
30            // v GlassFishi stačil InitialContext
31            // v Tomcatu / TomEE nešlo v InitialContextu DB spojení najít:
32            // javax.naming.NameNotFoundException: Name [jdbc/sqlVyuka/aplikace] is not bound in this Context. Unable to find [jdbc].)
33            // Po přidání lookup("java:comp/env") funguje v TomEE.
34            kontext = new InitialContext();
35            kontext = (Context) kontext.lookup("java:comp/env"); 
36        } catch (NamingException ex) {
37            log.log(Level.SEVERE, "Chyba při inicializaci kontextu", ex);
38        }
39    }
40
41    /**
42     * @param databaze Která databáze (aplikace = historie a nastavení | pískoviště = příkazy uživatele)
43     * @return Databázové spojení
44     */
45    protected Connection getSpojeni(DATABAZE databaze) {
46        if (databaze == null) {
47            databaze = DATABAZE.PISKOVISTE;
48        }
49        String jndi = orizni(getVlastnost(databaze, VyukaSuperDAO.class));
50        DataSource zdroj = null;
51        try {
52            zdroj = (DataSource) kontext.lookup(jndi);
53            return zdroj.getConnection();
54        } catch (NamingException ex) {
55            log.log(Level.SEVERE, "getSpojeni: lookup", ex);
56            return null;
57        } catch (SQLException ex) {
58            log.log(Level.SEVERE, "getSpojeni: sql", ex);
59            return null;
60        }
61    }
62}
Note: See TracBrowser for help on using the browser.