|
1 | 1 |
|
2 | 2 | import java.util.List; |
3 | 3 | import org.hibernate.HibernateException; |
4 | | -import org.hibernate.Session; |
5 | | -import org.hibernate.Transaction; |
6 | 4 |
|
7 | 5 | /** |
8 | 6 | * |
9 | 7 | * @author iagocolodetti |
10 | 8 | */ |
11 | | -public class ContatoDAO { |
| 9 | +public interface ContatoDAO { |
12 | 10 |
|
13 | | - private Session session = null; |
| 11 | + public void add(Contato contato) throws HibernateException; |
14 | 12 |
|
15 | | - public ContatoDAO() { |
16 | | - session = HibernateUtil.getSessionFactory().openSession(); |
17 | | - } |
| 13 | + public Contato getContato(int id) throws ContatoNaoExisteException; |
18 | 14 |
|
19 | | - // <editor-fold defaultstate="collapsed" desc="Comando(s) de Criação/Escrita (CREATE)"> |
20 | | - public void add(Contato contato) throws HibernateException { |
| 15 | + public List<Contato> getContatosPorNome(String nome) throws ContatoNaoExisteException, HibernateException; |
21 | 16 |
|
22 | | - try { |
23 | | - Transaction tx = session.beginTransaction(); |
24 | | - session.save(contato); |
25 | | - tx.commit(); |
26 | | - session.flush(); |
27 | | - } catch (HibernateException e) { |
28 | | - throw new HibernateException("Não foi possível adicionar o contato."); |
29 | | - } |
30 | | - } |
31 | | - // </editor-fold> |
| 17 | + public List<Contato> getContatosPorTelefone(String telefone) throws ContatoNaoExisteException, HibernateException; |
32 | 18 |
|
33 | | - // <editor-fold defaultstate="collapsed" desc="Comando(s) de Leitura/Busca (READ)"> |
34 | | - public Contato getContato(int id) throws ContatoNaoExisteException { |
| 19 | + public List<Contato> getContatosPorEmail(String email) throws ContatoNaoExisteException, HibernateException; |
35 | 20 |
|
36 | | - Contato contato = null; |
| 21 | + public List<Contato> getContatos() throws ContatoNaoExisteException, HibernateException; |
37 | 22 |
|
38 | | - try { |
39 | | - contato = (Contato) session.get(Contato.class, id); |
40 | | - session.flush(); |
41 | | - if (contato == null) { |
42 | | - throw new ContatoNaoExisteException("Não existe contato com esse ID."); |
43 | | - } |
44 | | - } catch (HibernateException e) { |
45 | | - throw new HibernateException("Não foi possível buscar o contato."); |
46 | | - } |
| 23 | + public void update(Contato contato) throws ContatoNaoExisteException, HibernateException; |
47 | 24 |
|
48 | | - return contato; |
49 | | - } |
50 | | - |
51 | | - public List<Contato> getContatosPorNome(String nome) throws ContatoNaoExisteException, HibernateException { |
52 | | - |
53 | | - List<Contato> contatos = null; |
54 | | - |
55 | | - try { |
56 | | - contatos = (List<Contato>) session.createSQLQuery("SELECT * FROM Contato WHERE nome LIKE '%" + nome + "%'").addEntity(Contato.class).list(); |
57 | | - session.flush(); |
58 | | - if (contatos == null || contatos.isEmpty()) { |
59 | | - throw new ContatoNaoExisteException("Não existem contatos com esse nome ou parte dele."); |
60 | | - } |
61 | | - } catch (HibernateException e) { |
62 | | - throw new HibernateException("Não foi possível buscar os contatos."); |
63 | | - } |
64 | | - |
65 | | - return contatos; |
66 | | - } |
67 | | - |
68 | | - public List<Contato> getContatosPorTelefone(String telefone) throws ContatoNaoExisteException, HibernateException { |
69 | | - |
70 | | - List<Contato> contatos = null; |
71 | | - |
72 | | - try { |
73 | | - contatos = (List<Contato>) session.createSQLQuery("SELECT * FROM Contato WHERE telefone LIKE '%" + telefone + "%'").addEntity(Contato.class).list(); |
74 | | - session.flush(); |
75 | | - if (contatos == null || contatos.isEmpty()) { |
76 | | - throw new ContatoNaoExisteException("Não existem contatos com esse telefone ou parte dele."); |
77 | | - } |
78 | | - } catch (HibernateException e) { |
79 | | - throw new HibernateException("Não foi possível buscar os contatos."); |
80 | | - } |
81 | | - |
82 | | - return contatos; |
83 | | - } |
84 | | - |
85 | | - public List<Contato> getContatosPorEmail(String email) throws ContatoNaoExisteException, HibernateException { |
86 | | - |
87 | | - List<Contato> contatos = null; |
88 | | - |
89 | | - try { |
90 | | - contatos = (List<Contato>) session.createSQLQuery("SELECT * FROM Contato WHERE email LIKE '%" + email + "%'").addEntity(Contato.class).list(); |
91 | | - session.flush(); |
92 | | - if (contatos == null || contatos.isEmpty()) { |
93 | | - throw new ContatoNaoExisteException("Não existem contatos com esse e-mail ou parte dele."); |
94 | | - } |
95 | | - } catch (HibernateException e) { |
96 | | - throw new HibernateException("Não foi possível buscar os contatos."); |
97 | | - } |
98 | | - |
99 | | - return contatos; |
100 | | - } |
101 | | - |
102 | | - public List<Contato> getContatos() throws ContatoNaoExisteException, HibernateException { |
103 | | - |
104 | | - List<Contato> contatos = null; |
105 | | - |
106 | | - try { |
107 | | - contatos = (List<Contato>) session.createSQLQuery("SELECT * FROM Contato").addEntity(Contato.class).list(); |
108 | | - session.flush(); |
109 | | - if (contatos == null || contatos.isEmpty()) { |
110 | | - throw new ContatoNaoExisteException("Não existem contatos."); |
111 | | - } |
112 | | - } catch (HibernateException e) { |
113 | | - throw new HibernateException("Não foi possível buscar os contatos."); |
114 | | - } |
115 | | - |
116 | | - return contatos; |
117 | | - } |
118 | | - // </editor-fold> |
119 | | - |
120 | | - // <editor-fold defaultstate="collapsed" desc="Comando(s) de Atualização/Alteração (UPDATE)"> |
121 | | - public void update(Contato contato) throws ContatoNaoExisteException, HibernateException { |
122 | | - |
123 | | - try { |
124 | | - if (session.get(Contato.class, contato.getId()) == null) { |
125 | | - throw new ContatoNaoExisteException("Não existe contato com esse ID."); |
126 | | - } |
127 | | - Transaction tx = session.beginTransaction(); |
128 | | - session.update(contato); |
129 | | - tx.commit(); |
130 | | - session.flush(); |
131 | | - } catch (HibernateException e) { |
132 | | - throw new HibernateException("Não foi possível alterar/atualizar o contato."); |
133 | | - } |
134 | | - } |
135 | | - // </editor-fold> |
136 | | - |
137 | | - // <editor-fold defaultstate="collapsed" desc="Comando(s) de Exclusão/Remoção (DELETE)"> |
138 | | - public void delete(int id) throws ContatoNaoExisteException, HibernateException { |
139 | | - |
140 | | - try { |
141 | | - Transaction tx = session.beginTransaction(); |
142 | | - session.delete(getContato(id)); |
143 | | - tx.commit(); |
144 | | - session.flush(); |
145 | | - } catch (ContatoNaoExisteException e) { |
146 | | - throw new ContatoNaoExisteException(e.getMessage()); |
147 | | - } catch (HibernateException e) { |
148 | | - throw new HibernateException("Não foi possível excluir/remover o contato."); |
149 | | - } |
150 | | - } |
151 | | - // </editor-fold> |
152 | | - |
153 | | - public void close() { |
154 | | - try { |
155 | | - session.close(); |
156 | | - } catch (HibernateException e) { |
157 | | - e.printStackTrace(); |
158 | | - } |
159 | | - } |
| 25 | + public void delete(int id) throws ContatoNaoExisteException, HibernateException; |
160 | 26 | } |
0 commit comments