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 | } |
---|